Java Struts 2-在操作中设置bean
我试图通过Struts 2操作的表单设置一个简单的bean。我对这个框架非常陌生,我不知道我遗漏了什么 beanJava Struts 2-在操作中设置bean,java,jsp,struts2,javabeans,Java,Jsp,Struts2,Javabeans,我试图通过Struts 2操作的表单设置一个简单的bean。我对这个框架非常陌生,我不知道我遗漏了什么 beanFormBean: public class FormBean { private String login=""; private String password=""; public String getLogin() { return login; } public void setLogin(String login)
FormBean
:
public class FormBean {
private String login="";
private String password="";
public String getLogin() {
return login;
}
public void setLogin(String login) {
this.login = login;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
动作形成动作:
public class FormAction extends ActionSupport {
private FormBean form;
@Override
public String execute() throws Exception {
return SUCCESS;
}
public FormBean getForm() {
return form;
}
public void setForm(FormBean form) {
this.form = form;
}
}
表单index.jsp
:
<%@ page contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<html>
<head>
</head>
<body>
<s:form action="login.action" method="post">
<s:textfield name="form.login" label="User" size="20" />
<s:password name="form.password" label="Password" size="20" />
<s:submit method="execute" value="Login" align="center" />
</s:form>
</body>
</html>
<%@ page contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<html>
<head>
</head>
<body>
<h2>Welcome <s:property value="form.login" /></h2>
<p><s:property value="form.password" /></p>
</body>
</html>
当我提交表单时,我的数据不会显示,我得到以下例外:
Unexpected Exception caught setting 'login' on 'class tuto.form.FormAction: Error setting expression 'login' with value ['test', ]
Error setting expression 'login' with value ['test', ] - [unknown location]
at com.opensymphony.xwork2.ognl.OgnlValueStack.handleRuntimeException(OgnlValueStack.java:197)
[...]
Caused by: No object in the CompoundRoot has a publicly accessible property named 'login' (no setter could be found). - [unknown location]
at com.opensymphony.xwork2.ognl.accessor.CompoundRootAccessor.setProperty(CompoundRootAccessor.java:106)
[...]
嘿,我刚刚复制了您的代码并制作了一个DispatcherServlet,在我这方面工作得很好。
并且不需要在Action类中初始化FormBean。这是正确的。您需要初始化FormBean
,这样它就不会null
。你可能还想看看建筑。我忘了最基本的东西。。。谢谢,它可以工作。在这种情况下,不需要初始化对象。嗯,真奇怪。我已更改回初始化,它可以正常工作。也许Eclipse或Tomcat中有bug。。。