Struts2参数在action类中为空

Struts2参数在action类中为空,struts2,Struts2,我无法将jsp中文本框中输入的文本值获取到我的action类中。下面是我的档案。有人能帮忙吗?这件事很紧急 我的jsp是 <%@ taglib uri="/struts-tags" prefix="s" %> <html> <body> <s:form action="login" method="post"> <s:textfield name="userName" label="User Name" /> <

我无法将jsp中文本框中输入的文本值获取到我的action类中。下面是我的档案。有人能帮忙吗?这件事很紧急

我的jsp是

<%@ taglib uri="/struts-tags" prefix="s" %>
<html>
<body>
  <s:form action="login" method="post">
    <s:textfield name="userName" label="User Name" />
    <s:submit type="button" id="submit" label="Submit"/>
    <s:reset id="reset" label="Reset"></s:reset>
  </s:form>
</body>
</html>
我的struts.xml是

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>
        <include file="struts-default.xml" />
    <package name="default" extends="struts-default">
        <action name="login" class="core.login.LoginAction">
            <result  name="error">>/webpages/login/Error.jsp</result>
            <result name="success">/webpages/home/Home.jsp</result>
        </action>
    </package>
</struts>

>/网页/login/Error.jsp
/网页/home/home.jsp

区分大小写很重要

public void setUsername(String username) {
    this.userName = username;
}
应该是:

public void setUserName(String username) {
    this.userName = username;
}

在struts.xml中,您已经编写了

class="core.login.LoginAction"
但是您没有在Action类中声明任何包。 setter和getter方法的名称也不同。请记住,正如Steven所说,它们区分大小写。
尝试删除文本字段中的附加值属性中的小错误,如额外的“>”

,如下所示:

<s:textfield name="userName" label="User Name" value="${userName}" />

直接映射到action类中的成员变量。

在Eclipse中, 要解决区分大小写的问题,右键单击代码编写区域,然后转到source->Generategetter和setter方法
它将为所选成员变量添加getter和setter方法。

您缺少
。您在这里遇到错误了吗?呼叫是否到达您的行动范围?与此问题无关,但由于问题的类型,在
之后有一个额外的
。我认为Steven可能在这里得到了答案。此答案是错误的。a) 不需要在Struts2标记上指定值,b)不能在Struts2标记属性中使用EL
<s:textfield name="userName" label="User Name" value="${userName}" />