From d179cfa6ee128d67a4e66377ac0321bc78c6613f Mon Sep 17 00:00:00 2001 From: Ognjen Cirkovic Date: Thu, 22 Dec 2022 02:57:23 +0100 Subject: Napravljen viewModel za prikaz pokemona za abilitijima. Prikaz na stranici korisnika. --- src/main/java/database/Database.java | 42 +++++++++++++++++++++- src/main/java/models/Ability.java | 6 ++-- src/main/java/pokemon/IService.java | 2 ++ src/main/java/pokemon/Service.java | 7 ++++ src/main/webapp/pages/pokemonViewModel.jsp | 56 ++++++++++++++++++++++++++++++ src/main/webapp/pages/userIndex.jsp | 19 +++------- 6 files changed, 113 insertions(+), 19 deletions(-) create mode 100644 src/main/webapp/pages/pokemonViewModel.jsp (limited to 'src/main') 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(); + 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 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" %> + + + + +Insert title here + + +<% + long monsterId=Long.parseLong(request.getParameter("monsterId")); + IService service=(IService)Naming.lookup(CONSTS.rmiUrl); + MonsterViewModel monster=service.getMonsterViewModel(monsterId); + request.setAttribute("monster", monster); + + +%> + + + + + + + + + + + + + +
ImeOpisHpSlika
+ + + + + + + + + + + + + + + + +
ImeOpisTypeSnaga
+ + + \ 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{ %> - - - - - - - - - - - - - -
ImeOpisHpSlika
+ + + <% } %>


+

Svi pokemoni

@@ -93,6 +83,5 @@ Trenutno izabran pokemon:
Ime
- \ No newline at end of file -- cgit v1.2.3