2010-08-20 72 views
1

我想要下面的代码工作,但不知道如何获取struts标签外的表单bean。在Struts标签之外操纵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标记?

根据你的XML文件格式的bean范围定义(会话,请求或......)

回答

4

你可以从对象从范围得到:

例如会话:

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

你甚至可以使用JSP或JSTL标签从范围中获取此对象。

+0

谢谢。这实际上正是我所期待的。尝试了它,它完美的作品!矿在请求范围btw。 我不能投票自己,否则我会。 – venky 2010-08-20 18:55:20

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> 
0

有四种方法可以从下面得到的值。 1.session 2.page 3.request 4.response 5.应用

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

字符串名称=的request.getParameter( “username” 的);

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

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

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

+0

这与我关于struts的问题无关。其次,使用会话是一种简单的方法,除非强烈要求在会话的整个过程中保留一段数据。 – venky 2010-09-05 13:29:18