如何在jstl | form中读取已存在的bean?

时间:2012-10-17 12:14:12

标签: spring spring-mvc jstl modelattribute

我有SpringMVC的简单表单,我希望通过pbid检索我已经拥有的bean。问题是服务器端我可以获得已经设置的bean,但是jsp方面它总是得到新的bean。我可以使用@ModelAttribute(“productbean”)来接收一些参数来获取服务器端的bean存储吗?怎么做? jstl |形式似乎总是得到新的形式

<form:form method="post" modelAttribute="productbean" action="">
<table>

    </tr>

    <tr>
        <td width="118"><form:label for="name" path="name" > Production Name:</form:label></td>
        <td colspan="2"><form:hidden path="pbid"/><form:input path="name" type="text" size="50" /></td>
    </tr>
...

我的控制器就像:

@RequestMapping(value="/createproduct", method=RequestMethod.GET)
public  String getProduct(HttpServletRequest req, Model model, 
        @RequestParam(value = "pbid", required = false, defaultValue = "") String spbid) throws MalformedURLException {
    UUID pbid;
    if(spbid.isEmpty())pbid=UUID.randomUUID();
    else pbid=UUID.fromString(spbid);
    ProductBean tmp;
    if(!products.containsKey(pbid)){
        tmp=createbean();
        pbid=tmp.getPbid(); 
        System.err.println("============new productbean===============\n");
    }else{
        tmp=products.get(pbid);
        System.err.println(tmp.getMpf().size());
        System.err.println(tmp.getMpf().printFileNameList());
    }
 .....

@ModelAttribute("productbean")
public ProductBean createbean(){
    ProductBean productbean=new ProductBean(context.getRealPath(filepath));
    products.put(productbean.assignID(), productbean);
    return productbean;
}

1 个答案:

答案 0 :(得分:0)

在类

上添加会话属性注释
@SessionAttributes("productbean")
@controller
public class test() {
}