2013-05-04 3 views
2

DTO를 사용하여 사용자 및 관련 객체의 목록을 가져 오려고합니다. 지금까지 오류가 있습니다.Spring - java.lang.NumberFormatException : 입력 문자열의 경우

모델

public class UserEntity 
    @OneToMany(cascade=CascadeType.ALL, fetch=FetchType.LAZY, mappedBy="setter") 
    private Set<Module> sModule = new HashSet<Module>(); 

    @OneToMany(cascade=CascadeType.ALL, fetch=FetchType.LAZY, mappedBy="checker") 
    private Set<Module> cModule = new HashSet<Module>(); 
    //getters and setters 

DTO

public class UserEntityDTO { 

private List<Module> sModule = new ArrayList<Module>(); 
private List<Module> cModule = new ArrayList<Module>(); 

컨트롤러

@RequestMapping(value = "/main/user/testing", method = RequestMethod.GET) 
    public String getRecords(Model model) { 

      List<UserEntity> users = userService.getUserEntity(); 

     List<UserEntityDTO> usersDTO = new ArrayList<UserEntityDTO>(); 

     for (UserEntity user: users) { 
     UserEntityDTO dto = new UserEntityDTO(); 

     dto.setUserId(user.getUserId()); 
     dto.setName(user.getName()); 
     dto.setsModule(moduleService.getSetterModules(user.getUserId())); 
     dto.setcModule(moduleService.getCheckerModules(user.getUserId())); 

     usersDTO.add(dto); 
    } 
     model.addAttribute("users", usersDTO); 


    return "/main/user/testing"; 
} 

JSP 페이지

<table> 
     <tr> 
      <th>User Id</th> 
        <th>User Name</th> 
        <th>Module</th> 
       </tr> 
     <c:forEach items="${users}" var="setter" > 
      <c:forEach items="${users.sModule}" var="module" > 
      <tr> 
       <td><c:out value="${setter.userId}" escapeXml="true" /></td> 
       <td><c:out value="${setter.name}" escapeXml="true" /></td> 


       <td><c:out value="${module.moduleCode}" escapeXml="true" /></td> 
       <td><c:out value="${module.moduleName}" escapeXml="true" /></td> 
       <td><c:out value="${module.moduleStatus}" escapeXml="true" /></td> 

      </tr> 
      </c:forEach> 
     </c:forEach> 
    </table> 

스택 트레이

java.lang.NumberFormatException: For input string: "sModule" 
java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) 
java.lang.Integer.parseInt(Integer.java:492) 
java.lang.Integer.parseInt(Integer.java:527) 
javax.el.ListELResolver.coerce(ListELResolver.java:173) 
javax.el.ListELResolver.getValue(ListELResolver.java:52) 
org.apache.jasper.el.JasperELResolver.getValue(JasperELResolver.java:104) 
org.apache.el.parser.AstValue.getValue(AstValue.java:183) 
org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:185) 
org.apache.jasper.el.JspValueExpression.getValue(JspValueExpression.java:106) 
org.apache.jsp.WEB_002dINF.views.main.user.testing_jsp._jspx_meth_c_005fforEach_005f1(testing_jsp.java:204) 
org.apache.jsp.WEB_002dINF.views.main.user.testing_jsp._jspx_meth_c_005fforEach_005f0(testing_jsp.java:172) 
org.apache.jsp.WEB_002dINF.views.main.user.testing_jsp._jspService(testing_jsp.java:111) 
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) 
javax.servlet.http.HttpServlet.service(HttpServlet.java:728) 
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432) 
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390) 
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334) 
javax.servlet.http.HttpServlet.service(HttpServlet.java:728) 
org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:238) 
org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:264) 
org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1208) 
org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:992) 
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:939) 
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:856) 
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:915) 
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:811) 
javax.servlet.http.HttpServlet.service(HttpServlet.java:621) 
org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:796) 
javax.servlet.http.HttpServlet.service(HttpServlet.java:728) 
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330) 
org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:118) 
org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:84) 
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) 
org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113) 
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) 
org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:103) 
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) 
org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:113) 
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) 
org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54) 
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) 
org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:45) 
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) 
org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:150) 
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) 
org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:183) 
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) 
org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105) 
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) 
org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87) 
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) 
org.springframework.security.web.access.channel.ChannelProcessingFilter.doFilter(ChannelProcessingFilter.java:144) 
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) 
org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:192) 
org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:160) 
org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346) 
org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:259) 

검색하려는 하위 개체에서 예외가 발생합니다. 내가 원하는 분야가 받아 들여지는 것을 어떻게 확인할 수 있습니까?

+0

그냥 참고 :'escapeXml는 = "true"로'''의 기본이다. 설정하지 않아도됩니다. –

답변

3

JSP의 모듈에 잘못된 방식으로 액세스하고 있습니다.

이 :

<c:forEach items="${users}" var="setter" > 
    <c:forEach items="${users.sModule}" var="module" > 

시도는 userssModule 멤버에 액세스하고, users는 목록이기 때문에 그것은 정수 인덱스로 것을 사용하는 sModule 변환하려고합니다.

그것은 아마해야합니다 :

<c:forEach items="${users}" var="user" > 
    <c:forEach items="${user.sModule}" var="module" > 
+0

예, 감사했습니다. – user2259555

+0

@ user2259555 답변을 수락 해 주시기 바랍니다;) – soulcheck

+0

예, 죄송합니다. – user2259555

관련 문제