我希望以下代码可以工作,但不知道如何在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标签?
答案 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”);
该值可以在会话到期之前获得。