重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

初めてjavaをしている者で、質問内容は既に色々出ている様ですが
解決できなかったため、ご教授頂けないかと思い、投稿しました。
宜しくお願い致します。

エラー内容:
致命的: サーブレット jsp のServlet.service()が例外を投げました
javax.servlet.jsp.JspException: org.apache.struts.taglib.html.BEAN という名前のbeanのプロパティ classcd に対するゲッターメソッドがありません

java 1.6
tomcat 6.0

jsp 部分

<%@ page language="java" contentType="text/html; charset=windows-31j"
pageEncoding="windows-31j"%>

<!DOCTYPE form-validation PUBLIC
"-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.3.0//EN"
"http://jakarta.apache.org/commons/dtds/validator …
<%-- Strutsタグの指定 --%>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html"%>
<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>


<html:html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-31j">
<title>商品マスタ登録</title>
</head>

<body>
<%-- アクションパスを指定 --%>

<html:form action="/login">
<html:select property="classcd" >

<html:options collection="classcdList"
property="id"
labelProperty="name"/>

</html:select>

セッターゲッター部分

public String getClassCd() {
return classcd;
}
public void setClassCd(String classcd) {
this.classcd = classcd;
}

public ArrayList<SelectBoxData> getClassCdList() {
return classcdList;
}
public void setClassCdList(ArrayList<SelectBoxData> classcdList) {
this.classcdList = classcdList;
}

ActionForward execute部分

//月のセレクトボックスの初期化
ArrayList<SelectBoxData> list = new ArrayList<SelectBoxData>(12);

for(int j = 1 ; j <= 12 ; j++){
SelectBoxData data = new SelectBoxData();
String setMonth = Integer.toString(j);

data.setId(setMonth);
data.setName(setMonth);

list.add(data);
}
linFrom.setClassCdList(list);
getHttpServletRequest.setAttribute("classcd", list);

A 回答 (2件)

><html:options collection="classcdList"


とするなら
>.setAttribute("classcd", list);
ではなく
.setAttribute("classcdList", list);
ではないでしょうか。

この回答への補足

回答頂き、有難うございます。
残念ながら同じくbeenエラーが出てしまいました。
struts-configを触らないと駄目なのでしょうか・・・他の所では特に記載が無かったので何処か凄く単純なミスのような気はするのですが。
もう少し触ってみますが、何かヒントがあれば宜しくお願い致します。

JSP
<html:select property="classcd" >

<html:options collection="classcdList"
property="id"
labelProperty="name"/>
</html:select>


ゲッターセッター
privateStringclasscd;
private ArrayList<SelectBoxData> classcdList;

public String getClasscd() {
return classcd;
}
public void setClasscd(String classcd) {
this.classcd = classcd;
}

public ArrayList<SelectBoxData> getClasscdList() {
return classcdList;
}
public void setClasscdList(ArrayList<SelectBoxData> classcdList) {
this.classcdList = classcdList;
}


アクションフォーム

// 動的なラジオボタンのデータの生成
List<SelectBoxData> list = new ArrayList<SelectBoxData>();

SelectBoxData data1 = new SelectBoxData();
data1.setId("01");
data1.setName("北海道");

SelectBoxData data2 = new SelectBoxData();
data2.setId("02");
data2.setName("東北");

SelectBoxData data3 = new SelectBoxData();
data3.setId("03");
data3.setName("関東");

list.add(data1);
list.add(data2);
list.add(data3);

linFrom.setClasscd("");



linFrom.setClasscdList((ArrayList<SelectBoxData>) list);



getHttpServletRequest.setAttribute("classcdList", list);

//(5)ActionForward を取得する。
ActionForward acf = getActionMapping.findForward("OK");


//(6)戻り値を返す。
return acf;

※SelectBoxDataは変更なし

補足日時:2011/04/01 16:53
    • good
    • 0

strutsは長いこと触ってないので自信がないで違ってたらすいません。


classcd,classcdListに対するゲッターならば
getClasscd,getClasscdListにしないといけないのではないですかね。

この回答への補足

回答、有難うございます。

確かに御指摘通り、ゲッターセッターの名前と引数の名前の大文字小文字はチェックされるようです。
http://okwave.jp/qa/q5398680.html


お陰様で該当のエラーは消えましたが今度は以下のエラーが出ました。
(classcdListも同様の対処をしています。)

致命的: サーブレット jsp のServlet.service()が例外を投げました
javax.servlet.jsp.JspException: classcdList という名前のbeanが見つかりません

以下、疑いましたが何か心当たりはありますでしょうか。
宜しくお願い致します。

public class SelectBoxData {

/** セレクトの選択肢 */
private String id;
private String name;

public void setId(String id) {
this.id = id;
}

public String getId() {
return id;
}

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

public String getName() {
return name;
}
}

補足日時:2011/04/01 12:24
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!