2011-09-16 25 views
0

私はSpring Frameworkの新機能です。私のPOCでは、jspでモデル値を取得していません。以下 は 私のコントローラがSpring MVCでjspの結果が表示されない

<bean id="configurationLoader" 
     class="org.springmodules.validation.bean.conf.loader.annotation.AnnotationBeanValidationConfigurationLoader"/> 

    <bean id="validator" class="org.springmodules.validation.bean.BeanValidator" 
     p:configurationLoader-ref="configurationLoader"/> 

    <!-- Load messages --> 
    <bean id="messageSource" 
     class="org.springframework.context.support.ResourceBundleMessageSource" 
     p:basenames="errors"/> 

    <!-- Discover POJO @Components --> 
    <!-- These automatically register an AutowiredAnnotationBeanPostProcessor --> 
    <context:component-scan base-package="contact"/> 

    <!-- Map logical view names to physical views --> 
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" 
     p:prefix="/WEB-INF/jsp/" 
     p:suffix=".jsp"/> 

下記のフォームを充填した後、私は、コマンドオブジェクトの詳細をしたいと私のJSPフォームが

<form:form modelAttribute="userMessage"> 
    <div class="form-item"> 
     <div class="form-label">Your name:</div> 
     <form:input path="name" size="40" cssErrorClass="form-error-field"/> 
     <div class="form-error-message"><form:errors path="name"/></div> 
    </div> 
    <div class="form-item"> 
     <div class="form-label">Your e-mail address:</div> 
     <form:input path="email" size="40" cssErrorClass="form-error-field"/> 
     <div class="form-error-message"><form:errors path="email"/></div> 
    </div> 
    <div class="form-item"> 
     <div class="form-label">Your message:</div> 
     <form:textarea path="text" rows="12" cols="60" cssErrorClass="form-error-field"/> 
     <div class="form-error-message"><form:errors path="text"/></div> 
    </div> 
    <div class="form-item"> 
     <input type="submit" value="Submit" /> 
    </div> 
</form:form> 

コンフィギュレーションファイル以下の通りです

@Controller 
public final class ContactController { 

    @Autowired 
    private Validator validator; 

    public void setValidator(Validator validator) { 
     this.validator = validator; 
    } 

    @RequestMapping(value = "/form", method = RequestMethod.GET) 
    public String get(ModelMap model) { 

     // Because we're not specifying a logical view name, the 
     // DispatcherServlet's DefaultRequestToViewNameTranslator kicks in. 
     UserMessage Message = new UserMessage(); 
     System.out.println("Hello Get Method"); 
     model.addAttribute("userMessage", Message); 
     return "form"; 
    } 

    @RequestMapping(value = "/form", method = RequestMethod.POST) 
    public String post(@ModelAttribute("userMessage") UserMessage userMsg, 
      BindingResult result, Model model) { 

     validator.validate(userMsg, result); 
     System.out.println(userMsg.getName()); 
     model.addAttribute("userMsg",userMsg); 
     if (result.hasErrors()) { return "form"; } 

     // Use the redirect-after-post pattern to reduce double-submits. 
     return "thanks"; 
    } 

である私のコードですjspページに戻るので、私は以下のように書く(thanks.jsp)

<%@ page import="contact.UserMessage" %> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 

<html xmlns="http://www.w3.org/1999/xhtml"> 
    <head> 
     <title>Thank You</title> 
    </head> 
    <body> 
     <h1>Thank You</h1> 
     Welcome <%= request.getParameter("name") %> 

     Name is ${userMsg.name} 
      </body> 
</html> 

request.getParameter( "name")は正しい結果を返していますが、$ {userMsg.name}がその理由で印刷していますか? %の@のtaglib接頭辞= "C" のuri = "のhttp:

+0

誰でも助けてください –

答えて

0

はEL <%の@ページisELIgnored = "false" に%>

0

は、ページ上のtaglib定義を持っていることを確認してください有効にしてみてください。 //java.sun.com/jsp/jstl/core "%>