【问题标题】:Struts & bean支柱和豆
【发布时间】:2009-03-18 09:28:35
【问题描述】:
我有两个问题:
1) 我们在 struts 中在哪里调用 bean(我们调用 bean 的确切行是什么以及从哪个文件中调用)以及如何调用 getter 和 setter 方法?
2)我们还将范围固定为请求或会话或其他内容,我可以理解这些值将存储在请求对象或会话对象中,但我的问题是这些值将以什么形式存储?
【问题讨论】:
标签:
java
jsp
web-applications
struts
javabeans
【解决方案1】:
1) 如果您谈论的是 struts form beans,它们会通过 struts 的 ActionServlet 和您使用的各种标签自动填充。
2) 这取决于您的 struts-config.xml 配置和您的 <html:form action="/myAction"> 标签:
<form-beans>
<form-bean name="myForm" type="com.example.struts.form.MyForm" />
<form-beans>
<action-mappings>
<action path="/myAction"
type="com.example.struts.action.MyAction"
name="myForm"
scope="request">
<forward name="success" path="myjsp.jsp" />
<forward name="failure" path="named.error.tiles.definition" />
</action>
</action-mappings>
在此示例中,包含 html:form 标签的 html 表单将在您提交公式时使用请求范围可见性填充 myForm struts 表单 bean。
然后您将在 MyAction 类中检索它:
public ActionForward execute(
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response) {
if(isCancelled(request))
form.reset(mapping, request);
if(form != null)
MyForm myForm = (MyForm)form;
}
【解决方案2】:
2) 值将作为对象存储。请求和会话属性是包含键和您存储的对象的映射。