如何获取当前的spring表单会话bean

时间:2013-12-21 10:11:02

标签: spring spring-mvc jsp-tags

我有表格:

     <form:form commandName="entity" role="form">
       <myCustomTag path="field_id" />
     </form:form>

如何在自定义标记中找出commandName是什么? (下面的MyCustomTag.tag文件)

     <%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
     <%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>

     <%@ attribute name="path" required="true" rtexprvalue="true"
         description="Name of corresponding property in bean object"%>

     <div class="form-group">
         <form:label path="${path}"><spring:message code="mylabelformat_${what_to_put_here?}_${path}"/></form:label>
         <form:input path="${path}" class="form-control" placeholder="${placeholder}" />
         <form:errors class="invalid" path="${path}" />
     </div>

2 个答案:

答案 0 :(得分:0)

form属性commandName指的是模型属性(您可以使用等效的form属性modelAttribute)。由于模型属性只是呈现视图时的请求属性,因此entity实际上只是一个请求属性。

在自定义标记中,只需获取

MyEntity entity = (MyEntity) request.getAttribute("entity");

答案 1 :(得分:0)

对于您的用例,您可以使用nestedPath请求属性,该属性由<spring:form>标记设置:

<spring:message code="mylabelformat_${nestedPath}${path}"/>

然后翻译代码(对于你的例子):

mylabelformat_entity.field_id