Spring MVC не показывает результат в JSP - PullRequest
0 голосов
/ 16 сентября 2011

Я новичок в Spring Framework. В моем POC я не получаю значение модели в jsp. ниже мой код Мой контроллер

@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, как показано ниже

<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>

Файл конфигурации, как показано ниже

<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, поэтому я пишу как показано ниже (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} печатает, как и почему?

Ответы [ 2 ]

0 голосов
/ 25 мая 2012

Убедитесь, что у вас есть определение taglib на странице: % @ taglib prefix = "c" uri = "http://java.sun.com/jsp/jstl/core"%>

0 голосов
/ 17 сентября 2011

попробуйте включить EL <% @ page isELIgnored = "false"%>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...