【问题标题】:Manipulate Struts Form Bean Data Outside of Struts Tags在 Struts 标签之外操作 Struts Form Bean 数据
【发布时间】:2010-08-20 18:32:01
【问题描述】:

我希望下面的代码可以工作,但不知道如何在 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 标记?

【问题讨论】:

    标签: java struts-1


    【解决方案1】:

    根据您的 xml 文件中的表单 bean 范围定义(会话、请求或...),您可以从该范围获取 from 对象:

    示例会话:

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

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

    【讨论】:

    • 谢谢。这实际上正是我想要的。试过了,效果很好!顺便说一句,我的在请求范围内。我不能自己投票,否则我会。
    【解决方案2】:

    提出问题的某些事情必须引发更高水平的大脑活动。

    我几乎立即找到了答案,归功于: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>
    

    【讨论】:

      【解决方案3】:

      有四种方法可以从以下获取值。 1.会话 2.页面 3.请求 4.响应 5.申请

      1.会话 您必须声明范围 =session

      String name = request.getParameter("用户名");

      用户名来自文本框的上一页或您指定的任何内容。

      session.setAttribute("key",value); String s = session.getAttribute("key");

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

      【讨论】:

      • 这真的与我关于struts的问题无关。其次,使用会话是一种简单的方法,并且是不好的做法,除非强烈要求在会话的生命周期内保留数据片段。
      猜你喜欢
      • 2014-10-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-29
      • 2014-10-04
      • 2012-01-29
      • 2011-05-22
      • 1970-01-01
      相关资源
      最近更新 更多