在JSP中设置DynaActionForm / DynaValidatorForm的值

时间:2012-01-06 22:09:25

标签: java jsp jstl struts-1

我想在DynaForm上设置一个值,这在Action类中很容易做到,但我想在JSP本身中这样做,方法是将会话中的值复制到表单中。

<form-bean name="inputCIDs" type="org.apache.struts.validator.DynaValidatorForm">
  <form-property name="containerIDFormat" type="java.lang.String"/>
</form-bean>

以下Java代码在JSP中有效,但是有一个Struts 1.x或JSTL标记可以执行等效的操作吗?

<%
    DynaActionForm form = (DynaActionForm) request.getAttribute("inputCIDs");
    form.set("containerIDFormat", session.getAttribute("varInSession"));
%>

用户将使用选择框

来使用和更改该属性
<html:select property="containerIDFormat">
  <html:options collection="containerIDFormats" property="value" labelProperty="description"/>
</html:select>

环境:
Struts 1.2.4
taglibs 1.1.2
JBoss 4.0.2

1 个答案:

答案 0 :(得分:0)

为什么呢? JSP不适合此类工作。

<html:hidden property="containerIDFormat" value="${varInSession}"/>

如果你只是设置表单值,它无论如何都无法在提交中存活,因为将创建一个新的请求范围的表单。如果它是一个会话范围的形式,那么在JSP中完成这项工作的理由就更少了。