Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
J
java_dzienna_15_09
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_dzienna_15_09
Commits
3fd6c293
Commit
3fd6c293
authored
Sep 29, 2022
by
Patryk Czarnik
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
filtrowanie wg cen
parent
398cd873
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
78 additions
and
1 deletions
+78
-1
ProductBean.java
PC26-SklepWeb/src/main/java/sklep/beans/ProductBean.java
+35
-1
products6.jsp
PC26-SklepWeb/src/main/webapp/products6.jsp
+43
-0
No files found.
PC26-SklepWeb/src/main/java/sklep/beans/ProductBean.java
View file @
3fd6c293
package
sklep
.
beans
;
import
java.math.BigDecimal
;
import
java.util.List
;
import
sklep.db.DBConnection
;
...
...
@@ -8,8 +9,35 @@ import sklep.db.ProductDAO;
import
sklep.model.Product
;
public
class
ProductBean
{
private
BigDecimal
minPrice
,
maxPrice
;
// Metoda wyląda jak getter, ale wewnątrznie czyta dane z bazy, a nie z własnej zmiennej.
// 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 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
try
(
DBConnection
db
=
DBConnection
.
open
())
{
...
...
@@ -17,5 +45,11 @@ public class ProductBean {
return
productDAO
.
readAll
();
}
}
public
List
<
Product
>
getFilteredProducts
()
throws
DBException
{
try
(
DBConnection
db
=
DBConnection
.
open
())
{
return
db
.
productDAO
().
findByPrice
(
minPrice
,
maxPrice
);
}
}
}
PC26-SklepWeb/src/main/webapp/products6.jsp
0 → 100644
View file @
3fd6c293
<
%@
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>
<
%
--
Za
pomoc
ą
klasy
ProductBean
odczytamy
z
bazy
list
ę
produkt
ó
w
w
postaci
obiektowej
.
--
%
>
<jsp:useBean
id=
"bean"
class=
"sklep.beans.ProductBean"
/>
<h2>
Filtr cen
</h2>
<form
id=
"wyszukiwarka"
method=
"get"
>
<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>
<
%
--
Kryteria
wyszukiwania
przys
ł
ane
w
parametrach
z
formularza
przekazuj
ę
do
bean
za
pomoc
ą
setter
ó
w
.
--
%
>
<jsp:setProperty
name=
"bean"
property=
"minPrice"
param=
"min_price"
/>
<jsp:setProperty
name=
"bean"
property=
"maxPrice"
param=
"max_price"
/>
<c:forEach
var=
"product"
items=
"${bean.filteredProducts}"
>
<div
class=
"product"
>
<h3>
${product.productName}
</h3>
<div
class=
"price"
>
Cena: ${product.price}
</div>
<div
class=
"price"
>
VAT ${product.vat * 100}%
</div>
<c:if
test=
"${not empty product.description}"
>
<p>
${product.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