【问题标题】:JSP form value not populating in Struts Action classJSP 表单值未填充到 Struts Action 类中
【发布时间】:2013-05-07 16:04:18
【问题描述】:

我是 Struts 的新手。我遇到了一个问题。我正在尝试将 JSP 表单值填充到 Action 类中,但我没有得到 Action 类中的值。有人可以告诉我是什么问题吗?这是我的 JSP。

addEmployee.jsp

<a:form action="addEmployee">
<a:textfield name="eId" size="20" label="EmployeeID"/>
<a:textfield name="eName" size="20" label="EmployeeName"/>
<a:textfield name="eCity" size="20" label="EmployeeCity"/>
<a:submit value="ADD EMPLOYEE" ></a:submit>
</a:form>

我的动作类 -- AddEmployeeAction.java

package com.action;

import com.opensymphony.xwork2.ActionSupport;

public class AddEmployeeAction extends ActionSupport{
/**
 * 
 */
private static final long serialVersionUID = 1L;
int eId;
String eName;
String eCity;


public AddEmployeeAction(){
}

@Override
public String execute() throws Exception{
    System.out.println("*******Execute*******"+eId+eName+eCity);
    return "success";

}
public int geteId() {
    return eId;
}

public void seteId(int eId) {
    this.eId = eId;
}

public String geteName() {
    return eName;
}

public void seteName(String eName) {
    this.eName = eName;
}

public String geteCity() {
    return eCity;
}

public void seteCity(String eCity) {
    this.eCity = eCity;
}

}

我的配置文件——struts.xml

<struts>

<constant name="struts.enable.DynamicMethodInvocation" value="false" />
<constant name="struts.devMode" value="true" />


<package name="default" extends="struts-default" namespace="/">
    <action name="addEmployee" class="com.action.AddEmployeeAction">
        <result name="success">/response.jsp</result>
        <result name="input">/addEmployee.jsp</result>
    </action>
 </package>
</struts>

【问题讨论】:

    标签: jsp struts


    【解决方案1】:

    您的 getter 和 setter 命名错误;它们应该遵循 JavaBean 命名约定:

    public String getEName() {
        return eName;
    }
    
    public void setEName(String eName) {
        this.eName = eName;
    }
    

    就个人而言,我会:

    1. 更好地命名它们,例如,empNameemployeeName
    2. 暴露员工并在表单中使用employee.name等,或
    3. 使用ModelDriven&lt;Employee&gt;

    不相关,但标签应该是人类可读的,例如“员工姓名”,而不是驼峰式 Java 式字符串。

    【讨论】:

    • 非常感谢戴夫。它现在正在工作。我正在使用 Eclipse,我自动生成了 getter 和 setter。我没有注意到命名约定。谢谢...
    猜你喜欢
    • 2013-04-10
    • 2013-06-11
    • 1970-01-01
    • 1970-01-01
    • 2016-08-29
    • 2011-08-07
    • 2014-03-30
    • 1970-01-01
    • 2016-07-13
    相关资源
    最近更新 更多