Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
J
java_weekendowa_20221008
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Patryk Czarnik
java_weekendowa_20221008
Commits
7389d21e
Commit
7389d21e
authored
Oct 23, 2022
by
Patryk Czarnik
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
products6 - filtr cen
parent
489bc835
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
95 additions
and
10 deletions
+95
-10
ProductBean.java
PC25-SklepWeb/src/main/java/sklep/web/ProductBean.java
+35
-1
products5.jsp
PC25-SklepWeb/src/main/webapp/products5.jsp
+9
-9
products6.jsp
PC25-SklepWeb/src/main/webapp/products6.jsp
+51
-0
No files found.
PC25-SklepWeb/src/main/java/sklep/web/ProductBean.java
View file @
7389d21e
package
sklep
.
web
;
import
java.math.BigDecimal
;
import
java.util.List
;
import
sklep.db.DBConnection
;
...
...
@@ -8,7 +9,41 @@ import sklep.db.ProductDAO;
import
sklep.model.Product
;
public
class
ProductBean
{
private
BigDecimal
minPrice
,
maxPrice
;
// Chociaż wewnętrznie zmienna jest typu BigDecimal, to gettery i settery napiszemy tak, jakby to były Stringi.
// Robimy to po to, aby w JSP zadziałało setProperty.
public
String
getMinPrice
()
{
return
minPrice
==
null
?
null
:
minPrice
.
toString
();
}
public
void
setMinPrice
(
String
minPrice
)
{
if
(
minPrice
==
null
||
minPrice
.
isEmpty
())
{
this
.
minPrice
=
null
;
}
else
{
this
.
minPrice
=
new
BigDecimal
(
minPrice
);
}
}
public
String
getMaxPrice
()
{
return
maxPrice
==
null
?
null
:
maxPrice
.
toString
();
}
public
void
setMaxPrice
(
String
maxPrice
)
{
if
(
maxPrice
==
null
||
maxPrice
.
isEmpty
())
{
this
.
maxPrice
=
null
;
}
else
{
this
.
maxPrice
=
new
BigDecimal
(
maxPrice
);
}
}
// Metoda odczytuje produkty zgodnie z ustawionymi wcześniej kryteriami (w tym przykładzie są to ceny, ale może być więcej filtrów).
public
List
<
Product
>
getFilteredProducts
()
throws
DBException
{
try
(
DBConnection
db
=
DBConnection
.
open
())
{
return
db
.
productDAO
().
findByPrice
(
minPrice
,
maxPrice
);
}
}
// Metoda wygląda jak getter, ale wewnętrznie czyta dane z bazy, a nie z własnej zmiennej.
public
List
<
Product
>
getAllProducts
()
throws
DBException
{
// za każdym razem otwieramy nowe połączenie - w prawdziwej aplikacji uznalibyśmy to za mało wydajne
...
...
@@ -17,5 +52,4 @@ public class ProductBean {
return
productDAO
.
readAll
();
}
}
}
PC25-SklepWeb/src/main/webapp/products5.jsp
View file @
7389d21e
...
...
@@ -13,15 +13,15 @@
<jsp:useBean
id=
"bean"
class=
"sklep.web.ProductBean"
/>
<c:forEach
var=
"
a
"
items=
"${bean.allProducts}"
>
<div
class=
"product"
>
<h3>
${a
.productName}
</h3>
<div>
Cena: ${a.price} PLN
</div>
<div>
VAT: ${a
.vat * 100}%
</div>
<c:if
test=
"${not empty(a.description)
}"
>
<div
class=
"description"
>
${a.description}
</div
>
</c:if>
</div>
<c:forEach
var=
"
p
"
items=
"${bean.allProducts}"
>
<div
class=
"product"
>
<h3>
${p
.productName}
</h3>
<div
class=
"price"
>
Cena: ${p.price}
</div>
<div
class=
"price"
>
VAT ${p
.vat * 100}%
</div>
<c:if
test=
"${not empty p.description
}"
>
<p>
${p.description}
</p
>
</c:if>
</div>
</c:forEach>
</body>
...
...
PC25-SklepWeb/src/main/webapp/products6.jsp
0 → 100644
View file @
7389d21e
<
%@
page
language=
"java"
contentType=
"text/html; charset=UTF-8"
pageEncoding=
"UTF-8"
%
>
<
%@
taglib
prefix=
"c"
uri=
"http://java.sun.com/jsp/jstl/core"
%
>
<!DOCTYPE html>
<html>
<head>
<meta
charset=
"UTF-8"
>
<title>
Lista produktów 6
</title>
<link
rel=
"stylesheet"
type=
"text/css"
href=
"styl.css"
>
</head>
<body>
<h1>
Lista produktów - wersja 6 JSP z filtrem
</h1>
<jsp:useBean
id=
"bean"
class=
"sklep.web.ProductBean"
/>
<form
id=
"wyszukiwarka"
method=
"get"
>
<h2>
Filtr cen
</h2>
<table
class=
"formularz"
>
<tr><td><label
for=
"min_price"
>
Cena minimalna:
</label></td>
<td><input
type=
"number"
name=
"min_price"
value=
"${param.min_price}"
></td></tr>
<tr><td><label
for=
"max_price"
>
Cena maksymalna:
</label></td>
<td><input
type=
"number"
name=
"max_price"
value=
"${param.max_price}"
></td></tr>
<tr><td><button>
Szukaj
</button></td></tr>
</table>
</form>
<div>
Produkty o cenach
<c:if
test=
"${not empty(param.min_price)}"
>
od ${param.min_price}
</c:if>
<c:if
test=
"${not empty(param.max_price)}"
>
do ${param.max_price}
</c:if>
</div>
<jsp:setProperty
name=
"bean"
property=
"minPrice"
param=
"min_price"
/>
<jsp:setProperty
name=
"bean"
property=
"maxPrice"
param=
"max_price"
/>
<c:forEach
var=
"p"
items=
"${bean.filteredProducts}"
>
<div
class=
"product"
>
<h3>
${p.productName}
</h3>
<div
class=
"price"
>
Cena: ${p.price}
</div>
<div
class=
"price"
>
VAT ${p.vat * 100}%
</div>
<c:if
test=
"${not empty p.description}"
>
<p>
${p.description}
</p>
</c:if>
</div>
</c:forEach>
</body>
</html>
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment