在Struts标签之外操纵Struts表单Bean数据

时间:2010-08-20 18:32:02

标签: java struts-1

我希望以下代码可以工作,但不知道如何在struts标记之外获取表单bean。

<logic:equal name="model" property="answerType" value="TEXT">
 <%
  String keyval = "questionAnswer" + "(" + model.getAnswerType() + ")";
 %>
 <html:text property="<%= keyval %>" value=""></html:text>    
</logic:equal>

有没有办法在JSP中使用struts表单bean,以便我可以使用struts标签之外的东西来执行某些处理?

很抱歉,如果这是非常基本的,但是可能的方法是:有没有办法使JSP页面与struts表单bean交互而不使用可以表示bean的struts标签?

3 个答案:

答案 0 :(得分:4)

基于xml文件中的表单bean作用域定义(session,request或...),您可以从该作用域中获取from对象:

示例会话:

MyFormBean m = (MyFormBean) session.getAttribute("<form bean name>");

您甚至可以使用JSP或JSTL标记从作用域中获取此对象。

答案 1 :(得分:0)

关于提问的事情必须触发更高水平的大脑活动。

我几乎立即找到了答案,并且归功于:accessing-struts-formbean-attributes-from-jsp

以下是我的更新代码:

            <logic:equal name="model" property="answerType" value="TEXT">
                <bean:define id="qlabel" name="model" property="questionLabel" />
                <%
                    String keyval = "questionAnswer" + "(" + qlabel + ")";
                %>
                <html:text property="<%= keyval %>" value=""></html:text>               
            </logic:equal>

答案 2 :(得分:0)

从以下方法获取值有四种方法。 1.session 2.page 3.request 4.response 5.应用

1.session   您必须声明scope = session

String name = request.getParameter(“username”);

其中用户名是从文本框的上一页或您指定的任何内容获取的。

session.setAttribute( “钥匙”,值); String s = session.getAttribute(“key”);

该值可以在会话到期之前获得。