2012-12-31 2 views
0

사용자가 포함 된 목록이 있습니다. JSP로 인쇄하려고하지만 인쇄 할 수없는 방법이 있습니다.spring : 목록에서 사용하는 바인드 오류

ModelAndView modelAndView = new ModelAndView("go_some_JSP_page"); 
List<UserEntity> users = userManager.getAllObjects(); 
modelAndView.addObject("users", users); 

BTW 컨트롤러

<c:forEach items="${users}" var="user" varStatus="status"> 
    <spring:bind path="users[${status.index}].name"> 
     <c:out value="${status.value}" /> 
    </spring:bind> 
</c:forEach> 

JSP

에이 예외를 HTTP Status 500 - javax.servlet.ServletException: javax.servlet.jsp.JspTagException: Neither BindingResult nor plain target object for bean name 'users[0]' available as request attribute

코드를 얻기 UserEntity 이름 필드가 있습니다. 바인딩을 제거하고 <c:out value="user.name" />을 사용하여 user.name을 인쇄하면 값이 인쇄됩니다.

어디서 잘못 처리해야합니까? 감사합니다

아래 코드를 작동하지 않습니다.

<spring:bind path="user.name"> 
    <c:out value="${status.value}" /> 
</spring:bind> 

이 오류를 가져옵니다 [나는 그렇게 status 변수를 사용하여 시도해야 필드 @NumberFormat에 서식 호출해야] - 그래서 바인딩하고 내가 빈 테이블을 얻을 빈을 추가

>javax.servlet.ServletException: javax.servlet.jsp.JspTagException: Neither BindingResult nor plain target object for bean name 'user' available as request attribute :(인스턴스가 비어 있기 때문에. 나는 그게 믿습니다.이 아닌 올바른 접근 방식처럼 보인다 않습니다 그래서.

@ModelAttribute("user") 
public UserEntity userEntityBinding() { 
    return UserEntity.newInstance(); 
} 

작업 코드는 https://github.com/hth/StatusInvoke.git

존재

배포하는 데 문제가있는 경우 알려주십시오.

이 질문은 해결되었습니다. 그것을 보아 주셔서 감사합니다. ModelAndView를 반환하는 경우

답변

0

@NumberFormat 주석을 호출하는 정답은이 주석이 호출

<spring:eval expression="user.balance" /> 

spring:eval expression 태그를 사용하는 것입니다 및 주석에 언급 된 서식을 수행

0

이, 목록

ModelAndView modelAndView = new ModelAndView("go_some_JSP_page"); 
List<UserEntity> users = userManager.getAllObjects(); 
modelAndView.addObject("users", users); 

를 채울 수있는 올바른 방법이며,이 목록

<c:forEach items="${users}" var="user" varStatus="status"> 
    <spring:bind path="user.name"> 
     <c:out value="${status.value}" /> 
    </spring:bind> 
</c:forEach> 
를 참조하는 올바른 방법입니다

귀하의 문제는 다른 곳에 있어야합니다 정확하게 채워지는 이름 필드가 올바른 jsp 호출 ... 위의 코드가 정확하고 작동해야합니다.

+0

userManager는'user'를 비어 있지 않습니다. 바인딩을 제거하고 단지'user'를 출력하면 출력됩니다. –

+0

바인딩을 변경 한 후에 다음과 같은 오류가 발생합니다. javax.servlet.ServletException : javax.servlet.jsp.JspTagException : BindingResult도 빈 이름 'user'의 일반 대상 객체도 요청 속성으로 사용할 수 없습니다. –

+0

@java_dude 게시자는 무엇입니까? 위의 코드는 – NimChimpsky

0

난 당신이 봄을 사용할 수 있다고 생각하지 않습니다 : 이 경우 AFAIK는 ModelMap에서 변수를 가져 오려고 시도하지만 "for"var에서 가져올 수 없습니다.

+0

대안으로 제안하고있는 것을 이해할 수 없기 때문에 더 많은 정보를 제공해 줄 수 있습니까 –

0

간단한 목록 대신 LazyList을 사용해보세요. 예제를보고 싶다면 내 question 중 하나를 참조하십시오. 질문문에서 저는 LazyList를 사용하는 방법을 언급했습니다.

호프가 도움이됩니다. 건배.

+0

해결책을 찾았고 코드가 github에 게시되었습니다. 작업 코드는 https://github.com/hth/StatusInvoke.git –

+0

ok에 있습니다. 목록의 값을 jsp 컨트롤에 바인딩하려고한다고 생각했습니다. 그래서 나는 이것이 더 쉬울 것이라고 생각했다. :) –

관련 문제