java - Struts 2 - 设置 bean Action

标签 java jsp struts2 javabeans

我正在尝试通过带有 Struts 2 操作的表单设置一个简单的 bean。我对这个框架很陌生,我不知道我错过了什么......

bean 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;
    }   
}

操作FormAction:

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>

结果Welcome.jsp:

<%@ 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)
[...]

最佳答案

嘿,我刚刚复制了您的代码并制作了一个调度程序 servlet,它在我这边工作得很好。 并且不需要在Action类中初始化FormBean。这是正确的。

关于java - Struts 2 - 设置 bean Action ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19154435/

相关文章:

struts2 - DisplayTag库问题-HTML标签问题

Java - 具有可选字段的 JAXB XML 解码

java - 如何创建一个可以作为窗口服务运行的java应用程序?

java - 在 spring mvc hibernate 应用程序中从字符串转换为 blob 时出错

javascript - 将jsp变量传递给javascript

java - 配置中的 Struts2 {}

struts2 - struts2中会为不同的方法创建不同的 Action 对象调用相同的 Action 吗?

java - Java中byte数据类型的实际使用

java - Android-Visual Studio 中支持 Java 到 C# 的等效命名空间/引用

java - 如何消除这个jsp错误