diff options
author | Ognjen Cirkovic <ciraboxkg@gmail.com> | 2022-12-22 02:57:23 +0100 |
---|---|---|
committer | Ognjen Cirkovic <ciraboxkg@gmail.com> | 2022-12-22 02:57:23 +0100 |
commit | d179cfa6ee128d67a4e66377ac0321bc78c6613f (patch) | |
tree | a354ce842e6302e6faced29e10e27a87ba605514 /src/main | |
parent | bf0edd9a699e5b6374468cc8d5c36b4e22842e24 (diff) |
Napravljen viewModel za prikaz pokemona za abilitijima. Prikaz na stranici korisnika.
Diffstat (limited to 'src/main')
-rw-r--r-- | src/main/java/database/Database.java | 42 | ||||
-rw-r--r-- | src/main/java/models/Ability.java | 6 | ||||
-rw-r--r-- | src/main/java/pokemon/IService.java | 2 | ||||
-rw-r--r-- | src/main/java/pokemon/Service.java | 7 | ||||
-rw-r--r-- | src/main/webapp/pages/pokemonViewModel.jsp | 56 | ||||
-rw-r--r-- | src/main/webapp/pages/userIndex.jsp | 19 |
6 files changed, 113 insertions, 19 deletions
diff --git a/src/main/java/database/Database.java b/src/main/java/database/Database.java index 80307db..7e0997f 100644 --- a/src/main/java/database/Database.java +++ b/src/main/java/database/Database.java @@ -10,6 +10,7 @@ import java.util.LinkedList; import java.util.List; import models.Ability; +import models.AbilityType; import models.Monster; import models.MonsterViewModel; import models.User; @@ -127,7 +128,7 @@ public class Database { ps.setString(2, ability.getName()); ps.setString(3, ability.getDescription()); ps.setInt(4, ability.getType().ordinal()); - ps.setInt(5, ability.getPower()); + ps.setFloat(5, ability.getPower()); if(ps.executeUpdate()==1) { result=true; } @@ -200,5 +201,44 @@ public class Database { } } + public MonsterViewModel getMonsterViewModel(long id) { + MonsterViewModel monster=null; + + String sql="SELECT * FROM monster m JOIN ability a ON m.id=? AND m.id=a.monsterId"; + try { + PreparedStatement statement = conn.prepareStatement(sql); + statement.setLong(1, id); + ResultSet res=statement.executeQuery(); + int i=0; + while(res.next()) { + if(i==0) + { + monster=new MonsterViewModel(); + monster.setId(res.getLong("m.id")); + monster.setName(res.getString("m.name")); + monster.setDescription(res.getString("m.description")); + monster.setHp(res.getInt("m.hp")); + monster.setBase64Image(res.getString("m.base64Image")); + monster.abilities=new ArrayList<Ability>(); + i++; + } + Ability a=new Ability(); + a.setId(res.getLong("a.id")); + a.setMonsterId(res.getLong("m.id")); + a.setName(res.getString("a.name")); + a.setDescription(res.getString("a.description")); + a.setType(AbilityType.values()[res.getInt("a.type")]); + a.setPower(res.getFloat("a.power")); + monster.abilities.add(a); + + } + + } catch (SQLException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + return monster; + + } } diff --git a/src/main/java/models/Ability.java b/src/main/java/models/Ability.java index 1a174cf..5706ba1 100644 --- a/src/main/java/models/Ability.java +++ b/src/main/java/models/Ability.java @@ -8,7 +8,7 @@ public class Ability implements Serializable { public String Name; public String description; public AbilityType type; - public int power; + public float power; public Ability() { @@ -46,10 +46,10 @@ public class Ability implements Serializable { public void setType(AbilityType type) { this.type = type; } - public int getPower() { + public float getPower() { return power; } - public void setPower(int power) { + public void setPower(float power) { this.power = power; } diff --git a/src/main/java/pokemon/IService.java b/src/main/java/pokemon/IService.java index 172c392..538dacd 100644 --- a/src/main/java/pokemon/IService.java +++ b/src/main/java/pokemon/IService.java @@ -6,6 +6,7 @@ import java.util.ArrayList; import models.Ability; import models.Monster; +import models.MonsterViewModel; import models.User; public interface IService extends Remote { @@ -16,5 +17,6 @@ public interface IService extends Remote { public ArrayList<Monster> getMonsters()throws RemoteException; public Monster getUserMonster(String username) throws RemoteException; public void addMonsterToUser(long id,long monsterId)throws RemoteException; + public MonsterViewModel getMonsterViewModel(long id)throws RemoteException; } diff --git a/src/main/java/pokemon/Service.java b/src/main/java/pokemon/Service.java index 579a0c4..cfdc076 100644 --- a/src/main/java/pokemon/Service.java +++ b/src/main/java/pokemon/Service.java @@ -7,6 +7,7 @@ import java.util.ArrayList; import database.Database; import models.Ability; import models.Monster; +import models.MonsterViewModel; import models.User; public class Service extends UnicastRemoteObject implements IService { @@ -57,6 +58,12 @@ public class Service extends UnicastRemoteObject implements IService { db.addMonsterToUser(id, monsterId); } + + @Override + public MonsterViewModel getMonsterViewModel(long id) throws RemoteException { + Database db=Database.getInstance(); + return db.getMonsterViewModel(id); + } } diff --git a/src/main/webapp/pages/pokemonViewModel.jsp b/src/main/webapp/pages/pokemonViewModel.jsp new file mode 100644 index 0000000..ba0068b --- /dev/null +++ b/src/main/webapp/pages/pokemonViewModel.jsp @@ -0,0 +1,56 @@ +<%@page import="models.MonsterViewModel"%> +<%@page import="models.CONSTS"%> +<%@page import="java.rmi.Naming"%> +<%@page import="pokemon.IService"%> +<%@ page language="java" contentType="text/html; charset=ISO-8859-1" + pageEncoding="ISO-8859-1"%> + <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> +<!DOCTYPE html> +<html> +<head> +<meta charset="ISO-8859-1"> +<title>Insert title here</title> +</head> +<body> +<% + long monsterId=Long.parseLong(request.getParameter("monsterId")); + IService service=(IService)Naming.lookup(CONSTS.rmiUrl); + MonsterViewModel monster=service.getMonsterViewModel(monsterId); + request.setAttribute("monster", monster); + + +%> +<table> + <tr> + <th>Ime</th> + <th>Opis</th> + <th>Hp</th> + <th>Slika</th> + </tr> + <tr> + <td><c:out value="${monster.name}"/></td> + <td><c:out value="${monster.description}"/></td> + <td><c:out value="${monster.hp}"/></td> + <td><img style="height: 50px" src="data:image/*;base64, ${monster.base64Image }" /></td> + </tr> +</table> +<table> + <tr> + <th>Ime</th> + <th>Opis</th> + <th>Type</th> + <th>Snaga</th> + </tr> + <c:forEach items="${monster.abilities}" var="item"> + <tr> + <td><c:out value="${item.name}"/></td> + <td><c:out value="${item.description}"/></td> + <td><c:out value="${item.type}"/></td> + <td><c:out value="${item.power}"/></td> + </tr> + </c:forEach> + +</table> + +</body> +</html>
\ No newline at end of file diff --git a/src/main/webapp/pages/userIndex.jsp b/src/main/webapp/pages/userIndex.jsp index 5bf5320..e54c742 100644 --- a/src/main/webapp/pages/userIndex.jsp +++ b/src/main/webapp/pages/userIndex.jsp @@ -44,24 +44,14 @@ Trenutno izabran pokemon: } else{ %> - <table> - <tr> - <th>Ime</th> - <th>Opis</th> - <th>Hp</th> - <th>Slika</th> - </tr> - <tr> - <td><c:out value="${myMonster.name}"/></td> - <td><c:out value="${myMonster.description}"/></td> - <td><c:out value="${myMonster.hp}"/></td> - <td><img style="height: 50px" src="data:image/*;base64, ${myMonster.base64Image }" /></td> - </tr> - </table> + <jsp:include page="pokemonViewModel.jsp"> + <jsp:param value="${myMonster.id}" name="monsterId"/> + </jsp:include> <% } %> <br><br><br> +<h1>Svi pokemoni</h1> <table> <tr> <th>Ime</th> @@ -93,6 +83,5 @@ Trenutno izabran pokemon: </c:forEach> </table> - </body> </html>
\ No newline at end of file |