2015-04-21 21 views
0

我有一个非常简单的Spring MVC项目:如何在春天MVC结果页上的URL参数?

@Controller 
@RequestMapping("/form.htm") 
public class FormController { 

    FormValidation formValidation; 

    @Autowired 
    public FormController(FormValidation formValidation) { 
     this.formValidation = formValidation; 
    } 

    @RequestMapping(method = RequestMethod.GET) 
    public String initForm(ModelMap model) { 
     QueryForm queryForm = new QueryForm(); 
     model.addAttribute("queryForm", queryForm); 
     return "queryForm"; 
    } 

    @RequestMapping(method = RequestMethod.POST) 
    public String submitForm(ModelMap model, @ModelAttribute("queryForm")QueryForm queryForm, 
          BindingResult result) { 
       List<String> Result = query(queryForm); 
      SuccessForm successForm = new SuccessForm(); 
      successForm.setId(queryForm.getId()); 
      model.addAttribute("successForm", successForm); 
      return "successForm"; 

    } 
    private List<String> query(QueryForm queryForm) { 
    } 
} 

的success.jsp:

<head> 
    <title>deviceInfo display</title> 
</head> 
<body> 
<h1>Id is ${successForm.Id}.</h1> 
<br> 
     <c:forEach var="info" items="${successForm.Info}" > 
       <p style="font-size:120%"><c:out value="${info}" /></p> 
        <hr /> 
     </c:forEach> 
<br> 
</body> 
</html> 

query.jsp:

<head> 
    <meta charset="utf-8"> 
</head> 
<body> 
<div id="main"> 
    <form class="form" id="queryForm" method="POST" command="queryForm"> 
     <fieldset> 
      <legend>Please fill in the form</legend> 
      <p> 
       <label for="Id" class="sr-only">Id</label> 
       <input type="text" name="Id" id="Id" class="form-control" placeholder="Id"> 
      </p> 
      <p> 
       <button class="btn btn-lg btn-primary btn-block" type="submit">Submit</button> 
      </p> 
     </fieldset> 
    </form> 
</div> 
</body> 
</html> 
这样

,成功的网址。 jsp页面与query.jsp相同:http://localhost:8080/project/form.htm。我需要在query.jsp上添加一些参数,如:http://localhost:8080/project/form.htm?Id=xxx,所以成功页面可以发送给其他人,结果存在,我该怎么做?谢谢。
Spring MVC的版本:2.5.6

回答

0

你有用户模型属性就像你已经做了successFormqueryForm对象,而不是在URL的末尾发送参数。您可以访问通过JSP标签模型属性,如

<c:out value='${modelObject.attrProperty}' /> 

<c:out value='${successForm.Id}' /> //for object's properties 
<c:out value='${isUserValid}' /> //for boolean values 

对于列表:

List<UserForm> userForms = LoadFromDB(); 
model.addAttribute("userForms", userForms); 

JSTL迭代上面的列表:

<c:forEach items="${userForms}" var="userForm">  
    // Do something 
</c:forEach> 

或者你可以使用RedirectAttri像这样的012tes

@RequestMapping(value="/someURL", method=GET) 
public String yourMethod(RedirectAttributes redirectAttributes) 
{ 
    ... 
    redirectAttributes.addAttribute("Id", "IdValue"); 
    redirectAttributes.addFlashAttribute("flashVal", flashValue); 
    return "redirect:/successPage"; //redirects to the `successPage` with params 
} 
+0

谢谢,我可以访问successForm中的属性,但我怎样才能使用它们来生成URL的参数? – nzomkxia