Advertisement
Guest User

Untitled

a guest
Feb 12th, 2017
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.13 KB | None | 0 0
  1. package main.java.com.caesar_84.smvctest.controller;
  2.  
  3. import main.java.com.caesar_84.smvctest.model.User;
  4. import main.java.com.caesar_84.smvctest.service.UserService;
  5. import main.java.com.caesar_84.smvctest.wrappers.IntWrapper;
  6. import org.springframework.beans.factory.annotation.Autowired;
  7. import org.springframework.beans.factory.annotation.Qualifier;
  8. import org.springframework.stereotype.Controller;
  9. import org.springframework.ui.Model;
  10. import org.springframework.web.bind.annotation.ModelAttribute;
  11. import org.springframework.web.bind.annotation.PathVariable;
  12. import org.springframework.web.bind.annotation.RequestMapping;
  13. import org.springframework.web.bind.annotation.RequestMethod;
  14.  
  15. /**
  16. * Created by caesar-84 on 2/10/17.
  17. */
  18. @Controller
  19. public class UserController
  20. {
  21. private UserService userService;
  22. private Integer lastPassedIdParam = 0;
  23.  
  24. @Autowired(required = true)
  25. @Qualifier(value = "userService")
  26. public void setUserService(UserService userService) {
  27. this.userService = userService;
  28. }
  29.  
  30. @RequestMapping(value = "userlist", method = RequestMethod.GET)
  31. public String userList(Model model)
  32. {
  33. model.addAttribute("user", new User());
  34. model.addAttribute("userList", userService.userList());
  35.  
  36. return "userlist";
  37. }
  38.  
  39. @RequestMapping(value = "users", method = RequestMethod.GET)
  40. public String users(Model model)
  41. {
  42. model.addAttribute("user", new User());
  43.  
  44. return "users";
  45. }
  46.  
  47. @RequestMapping(value = "users/add", method = RequestMethod.POST)
  48. public String addUser(@ModelAttribute("user") User user)
  49. {
  50. if (user.getId() == 0) userService.addUser(user);
  51. else userService.updateUser(user);
  52.  
  53. return "redirect:/users";
  54. }
  55.  
  56. @RequestMapping(value = "/remove/{id}")
  57. public String removeUser(@PathVariable("id") int id)
  58. {
  59. userService.deleteUser(id);
  60.  
  61. return "redirect:/users";
  62. }
  63.  
  64. @RequestMapping(value = "edit/{id}")
  65. public String editUser(@PathVariable("id") int id, Model model)
  66. {
  67. model.addAttribute("user", userService.getUserById(id));
  68.  
  69. return "users";
  70. }
  71.  
  72. @RequestMapping(value = "/userdata")
  73. public String userData(Model model)
  74. {
  75. model.addAttribute("user", userService.getUserById(lastPassedIdParam));
  76.  
  77. return "userdata";
  78. }
  79.  
  80. @RequestMapping(value = "finduser")
  81. public String findUserPage(Model model)
  82. {
  83. model.addAttribute("idParam", new IntWrapper());
  84. lastPassedIdParam = ((IntWrapper)model.asMap().get("idParam")).getValue();
  85.  
  86. return "finduser";
  87. }
  88.  
  89. @RequestMapping(value = "passidparam")
  90. public String passParam()
  91. {
  92. return "redirect:/userdata";
  93. }
  94. }
  95.  
  96. <%--
  97. Created by IntelliJ IDEA.
  98. User: caesar-84
  99. Date: 2/11/17
  100. Time: 4:30 PM
  101. To change this template use File | Settings | File Templates.
  102. --%>
  103. <%@ page contentType="text/html;charset=UTF-8" language="java" %>
  104. <%@ taglib uri="http://www.springframework.org/tags" prefix="spring" %>
  105. <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
  106. <%@ taglib uri="http://www.springframework.org/tags/form" prefix="form" %>
  107. <html>
  108. <head>
  109. <title>Find User</title>
  110. <style>
  111. <%@include file='styles/main.css'%>
  112. </style>
  113. </head>
  114. <body class="general">
  115.  
  116. <h3>Find a user</h3>
  117.  
  118. <c:url var="findAction" scope="request" value="passidparam"/>
  119. <form:form action="${findAction}" commandName="idParam">
  120. <table>
  121. <tr>
  122. <td>
  123. <form:label path="value">
  124. <spring:message text="Enter user id to find him"/>
  125. </form:label>
  126. </td>
  127. <td>
  128. <form:input path="value" maxlength="8" size="3"/>
  129. </td>
  130. </tr>
  131. <tr>
  132. <td colspan="2">
  133. <input type="submit" value="<spring:message text="Find"/>"/>
  134. </td>
  135. </tr>
  136. </table>
  137. </form:form>
  138. <br/>
  139. <a href="/userlist">See all users</a>
  140. <br/>
  141. <a href="../../index.jsp">Back home</a>
  142. </body>
  143. </html>
  144.  
  145. <web-app
  146. xmlns="http://xmlns.jcp.org/xml/ns/javaee"
  147. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  148. xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
  149. http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
  150. version="3.1">
  151.  
  152. <servlet>
  153. <servlet-name>mvc-dispatcher</servlet-name>
  154. <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  155. <load-on-startup>1</load-on-startup>
  156. </servlet>
  157. <servlet-mapping>
  158. <servlet-name>mvc-dispatcher</servlet-name>
  159. <url-pattern>/</url-pattern>
  160. </servlet-mapping>
  161.  
  162. <?xml version="1.0" encoding="UTF-8"?>
  163. <beans xmlns="http://www.springframework.org/schema/beans"
  164. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  165. xmlns:context="http://www.springframework.org/schema/context"
  166. xmlns:tx="http://www.springframework.org/schema/tx"
  167. xmlns:mvc="http://www.springframework.org/schema/mvc"
  168. xsi:schemaLocation="http://www.springframework.org/schema/beans
  169. http://www.springframework.org/schema/beans/spring-beans.xsd
  170. http://www.springframework.org/schema/context
  171. http://www.springframework.org/schema/context/spring-context.xsd
  172. http://www.springframework.org/schema/tx
  173. http://www.springframework.org/schema/tx/spring-tx.xsd
  174. http://www.springframework.org/schema/mvc
  175. http://www.springframework.org/schema/mvc/spring-mvc.xsd">
  176.  
  177. <context:component-scan base-package="main.java.com.caesar_84.smvctest"/>
  178.  
  179. <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
  180. <property name="prefix" value="/WEB-INF/pages/"/>
  181. <property name="suffix" value=".jsp"/>
  182. </bean>
  183.  
  184. <!-- Database info -->
  185. <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
  186. <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
  187. <property name="url" value="jdbc:mysql://localhost:3306/sample_schema"/>
  188. <property name="username" value="*****"/>
  189. <property name="password" value="*****"/>
  190. </bean>
  191.  
  192. <!-- Hibernate session factory -->
  193. <bean id="hibernate5AnnotationSessionFactory"
  194. class="org.springframework.orm.hibernate5.LocalSessionFactoryBean">
  195. <property name="dataSource" ref="dataSource"/>
  196. <property name="annotatedClasses">
  197. <list>
  198. <value>main.java.com.caesar_84.smvctest.model.User</value>
  199. </list>
  200. </property>
  201. <property name="hibernateProperties">
  202. <props>
  203. <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
  204. <prop key="hibernate.show_sql">true</prop>
  205. </props>
  206. </property>
  207. </bean>
  208.  
  209. <!-- DAO and services -->
  210. <bean id="userDAO" class="main.java.com.caesar_84.smvctest.dao.UserDAOImpl">
  211. <property name="sessionFactory" ref="hibernate5AnnotationSessionFactory"/>
  212. </bean>
  213. <bean id="userService" class="main.java.com.caesar_84.smvctest.service.UserServiceImp">
  214. <property name="userDAO" ref="userDAO"/>
  215. </bean>
  216.  
  217. <context:component-scan base-package="main.java.com.caesar_84.smvctest"/>
  218. <tx:annotation-driven transaction-manager="transactionManager"/>
  219.  
  220. <bean id="transactionManager" class="org.springframework.orm.hibernate5.HibernateTransactionManager">
  221. <property name="sessionFactory" ref="hibernate5AnnotationSessionFactory"/>
  222. </bean>
  223.  
  224. <mvc:default-servlet-handler/>
  225. <mvc:annotation-driven/>
  226.  
  227. package main.java.com.caesar_84.smvctest.wrappers;
  228.  
  229. import java.util.Objects;
  230.  
  231. /**
  232. * Created by caesar-84 on 2/11/17.
  233. */
  234. public class IntWrapper
  235. {
  236. private Integer value;
  237.  
  238. public IntWrapper() {}
  239.  
  240. public Integer getValue() {
  241. return value;
  242. }
  243.  
  244. public void setValue(Integer value) {
  245. this.value = value;
  246. }
  247.  
  248. @Override
  249. public String toString() { return value.toString(); }
  250.  
  251. @Override
  252. public boolean equals(Object o) {
  253. if (this == o) return true;
  254. if (!(o instanceof IntWrapper)) return false;
  255. IntWrapper that = (IntWrapper) o;
  256. return Objects.equals(getValue(), that.getValue());
  257. }
  258.  
  259. @Override
  260. public int hashCode() {
  261. return Objects.hash(getValue());
  262. }
  263. }
  264.  
  265. org.springframework.web.util.NestedServletException: Request processing failed; nested exception is java.lang.NullPointerException
  266. org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:982)
  267. org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:861)
  268. javax.servlet.http.HttpServlet.service(HttpServlet.java:622)
  269. org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
  270. javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
  271. org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
  272. root cause
  273.  
  274. java.lang.NullPointerException
  275. main.java.com.caesar_84.smvctest.controller.UserController.userData(UserController.java:75)
  276. sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  277. sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
  278. sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  279. java.lang.reflect.Method.invoke(Method.java:498)
  280. org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:220)
  281. org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:134)
  282. org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:116)
  283. org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)
  284. org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)
  285. org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)
  286. org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:963)
  287. org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:897)
  288. org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
  289. org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:861)
  290. javax.servlet.http.HttpServlet.service(HttpServlet.java:622)
  291. org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
  292. javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
  293. org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement