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 | |
parent | bf0edd9a699e5b6374468cc8d5c36b4e22842e24 (diff) |
Napravljen viewModel za prikaz pokemona za abilitijima. Prikaz na stranici korisnika.
-rw-r--r-- | jstl-1.2.jar.zip | bin | 367905 -> 0 bytes | |||
-rw-r--r-- | pokemon.sql | 22 | ||||
-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 |
8 files changed, 133 insertions, 21 deletions
diff --git a/jstl-1.2.jar.zip b/jstl-1.2.jar.zip Binary files differdeleted file mode 100644 index 4f8c7a8..0000000 --- a/jstl-1.2.jar.zip +++ /dev/null diff --git a/pokemon.sql b/pokemon.sql index d8ad22f..f7972b7 100644 --- a/pokemon.sql +++ b/pokemon.sql @@ -3,7 +3,7 @@ -- https://www.phpmyadmin.net/ -- -- Host: 127.0.0.1:3306 --- Generation Time: Dec 22, 2022 at 01:17 AM +-- Generation Time: Dec 22, 2022 at 01:40 AM -- Server version: 5.7.31 -- PHP Version: 7.4.9 @@ -38,7 +38,25 @@ CREATE TABLE IF NOT EXISTS `ability` ( `type` int(11) NOT NULL, `power` float NOT NULL, PRIMARY KEY (`id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) ENGINE=MyISAM AUTO_INCREMENT=13 DEFAULT CHARSET=utf8; + +-- +-- Dumping data for table `ability` +-- + +INSERT INTO `ability` (`id`, `monsterId`, `name`, `description`, `type`, `power`) VALUES +(1, 1, 'Thunderbolt', 'Thunderbolt desc', 0, 1000), +(2, 1, 'Light Ball', 'Light Ball dedasdasdsa dasdas', 1, 2500), +(3, 1, 'Heal light', 'Heal light fgdsfdsfsd', 2, 500), +(4, 1, 'Rock', 'Rock Shild', 3, 700), +(5, 2, 'Fire Spin', 'Fire Spin fdsfsd', 0, 2500), +(6, 2, 'Fire Blast', 'Fire Blast special desc', 1, 3000), +(7, 2, 'Earthquake', 'Earthquake heal', 2, 600), +(8, 2, 'Toxic ', 'Toxic Shield', 3, 1200), +(9, 3, 'Sleep Powder', 'Sleep Powder descdsa', 0, 1000), +(10, 3, 'Swords Dance', 'Swords Dance dsadas', 1, 2500), +(11, 3, 'Leaf Heal', 'Leaf Heal dfsadasdsa', 2, 1000), +(12, 3, 'Rock Shield', 'Rock Shield dfsadas', 3, 1500); -- -------------------------------------------------------- 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 |