0
我想在DynaForm上設置一個值,這很容易在Action類中完成,但我想在JSP本身中這樣做,方法是從進入表格。在JSP中爲DynaActionForm/DynaValidatorForm設置值
<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標記,它會做的等效操作?
的Struts 1.2.4
標記庫1.1.2
的JBoss 4.0.2
<%
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>
環境中使用,並改變由用戶
你是對的。這是我試圖完成的最終挑戰。我希望將選擇框的值從會話中拉出並放入會話中。但是,如果我沒有在動作中定義的DynaForm中聲明該變量,它就不能工作。這個特定的變量以多種形式使用,頁面可以從多個動作加載。通過將代碼放入JSP中,我確保表單中的值與會話中的值匹配。有沒有更好的辦法? – JustinKSU 2012-01-06 22:28:30
@JustinKSU嗯,使用動態形式意味着沒有'重置'。它仍然可以在行動中完成;如果這是一切都結束了,可能會在一個薄弱的基地行動。也許,使用隱藏的屬性也很容易。不確定你對選擇框的含義;如果表單有一個選擇框,它應該有一個屬性。 – 2012-01-06 22:33:14
有沒有辦法映射一個屬性,以便將其值自動保存到會話中,而不是將它放在表單上?換句話說,是否有一種方法來複制屬性,而不必將我的Action中的代碼從表單複製到Session中? – JustinKSU 2012-01-06 22:42:07