0

私は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>
4

1 に答える 1

1

ゲッターとセッターの名前が間違っています。JavaBean 命名規則に従う必要があります。

public String getEName() {
    return eName;
}

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

個人的には、次のいずれかを行います。

  1. 、、、またはempName_employeeName
  2. 従業員を公開employee.nameし、フォームで使用するなど、または
  3. 使用するModelDriven<Employee>

関連はありませんが、ラベルはキャメルケースの Java 風の文字列ではなく、「従業員名」など、人間が読める形式にする必要があります。

于 2013-05-13T15:23:27.733 に答える