2010-12-14 12 views
0

Struts 2ラジオボタンで作業中です。 は、私はアクションクラスからリストを取得したいが、それは次のエラーを与えているStruts 2ラジオボタンリスト

org.apache.jasper.JasperExceptionが:タグ 「ラジオ」、フィールド「リスト」、名前 「user.yourGender」:要求されたリスト キー '#user.gender'は、 が コレクション/配列/マップ/列挙型/反復子 タイプとして解決されませんでした。例:人や人{名前} - [不明場所]

私のアクションクラス&ユーザークラスが続く

HelloAction

package com.geekcap.struts2.action; 

import com.geekcap.struts2.model.User; 
import com.opensymphony.xwork2.ActionSupport; 
import java.util.List; 
import java.util.ArrayList; 

public class HelloAction extends ActionSupport 
{ 
private User user; 

public String execute() throws Exception 
{  
    return "success"; 
} 

public void validate() 
{ 
    if(user.getName().length()==0) 
    { 
    addFieldError("user.name", "User Name is required"); 
    } 

    if(user.getAge()==0) 
    { 
    addFieldError("user.age","Age is required"); 
    } 

    if(user.getPassword().length()==0) 
    { 
    addFieldError("user.password","Please enter your password !"); 
    } 

/* if(user.getGender().equals("-1")) 
    { 
    addFieldError("user.gender","Please select gender !"); 
    }*/ 
} 



public User getUser() 
{ 
    return user; 
} 

public void setUser(User userbean) 
{ 
    user=userbean; 
} 

} 

Userクラス

ようです。
package com.geekcap.struts2.model; 

import java.util.List; 
import java.util.ArrayList; 

public class User 
{ 
private String name,password; 
// private List like; 
private int age; 
private List<String> gender; 
private String yourGender; 

public User() 
{ 
    gender= new ArrayList<String>(); 
    gender.add("MALE"); 
    gender.add("FEMALE"); 
    gender.add("UNKNOWN"); 
} 


public String getName() 
{ 
    return name; 
} 

public void setName(String name) 
{ 
    this.name = name; 
} 

public String getPassword() 
{ 
    return password; 
} 

public void setPassword(String password) 
{ 
    this.password=password; 
} 

public int getAge() 
{ 
    return age; 
} 

public void setAge(int age) 
{ 
    this.age=age; 
} 

public List<String> getGender() 
{ 
    return gender; 
} 

public void setGender(List<String> gender) 
{ 
    this.gender=gender; 
} 

public void setYourGender(String yourGender) 
{ 
    this.yourGender=yourGender; 
} 

public String getYourGender() 
{ 
    return yourGender; 
} 

public String getDefaultGenderValue() 
{ 
    return "UNKNOWN"; 
} 

helloForm.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%> 
<%@ taglib prefix="s" uri="/struts-tags" %> 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
<title>Welcome to Struts 2</title> 
</head> 
<body> 

<s:form action="Hello"> 
    <s:textfield name="user.name" label="User name" value="shahid"/> 
    <s:password name="user.password" label="Password"/> 
    <s:textfield name="user.age" label="Age"/>  
    <s:radio label="Gender" name="user.yourGender" list="user.gender" value="defaultGenderValue"/>  
    <s:submit/> 
</s:form> 

</body> 
</html> 

Hello.jspの

<%@ page language="java" contentType="text/html; charset=UTF-8" 
    pageEncoding="UTF-8"%> 
<%@ taglib prefix="s" uri="/struts-tags" %> 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
<title>Hello, Struts 2</title> 
</head> 
<body> 
<h4> 
Hello, <s:property value="user.name"/>! 
<br>Your password :<s:property value="user.password"/></br> 
<br>your age :<s:property value="user.age"/></br> 
<br>Gender :<s:property value="user.yourGender"/></br> 
</h4> 
</body> 
</html> 
+0

ないと思いませんストラット[ヒント:「コード」フォーマッタを使用します]。ラジオボタンに使用しているHTMLコードは何ですか? anirvanとして – anirvan

+0

は、コードフォーマッタボタン(1010とラベル付けされたもの)を使用してコードをフォーマットします。私は今度あなたのためにそれをしました。 – Nivas

答えて

0

あなたはリストgenderはJSPでnullではありませんか?

それがnullの場合は、それを参照してくださいので、それはあなたがより良いあなたの質問をフォーマットすることができれば、それが参考になるだろうが

+0

いいえ、それはnullではありません、実際に私はユーザーアクションのコンストラクタでラジオのリストを生成しました – shahid

+0

誰も助けてくれる人はありません – shahid

+0

@ user541595あなたはリストを生成したと言います。アクションクラスの例では、あなたはそれを示していません。この特定のJSPの前に、リストがインスタンス化されて入力されていることを確認してください。あなたは、アクションクラスの終わりにそれを印刷/デバッグして確実にすることができます。 – Nivas