>request.setAttribute("optionsYear",[表示させたい値以外のそのほかの値の配列変数]);
表示させたい値を配列に含めないといけないのではないですか?
そうしないとoptionとして出力されませんよね。
struts1.3.10をダウンロードして動かしてみたところ、初期選択することができました。
ブランクプロジェクトをちょこっと変更しただけなのでbrave9977さんの画面遷移とは違うと思いますが、
<html:select>と<html:options>の動きに影響はないはずなので。
ちょっと長くなりますが下記にソースを記載します。
--A.java--
public class A extends Action {
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
B b = (B)form;
b.yearValue = "2010";
request.setAttribute("optionsYear", new String[]{"2008","2009","2010","2011"});
return mapping.findForward("hoge");
}
}
--B.java--
public class B extends ActionForm {
public String yearValue;
public String getYearValue() {
return yearValue;
}
public void setYearValue(String yearValue) {
this.yearValue = yearValue;
}
}
--Welcome.jsp--
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
<html:html>
<head>
<html:base/>
</head>
<body bgcolor="white">
<html:select name="BeanName" property="yearValue" >
<html:options name="optionsYear" labelName="optionsYear"/>
</html:select>
</body>
</html:html>
--struts-config.xml--
<form-beans>
<form-bean name="BeanName" type="test.B" />
</form-beans>
<action-mappings>
<action
path="/Welcome"
type="test.A"
name="BeanName">
<forward name="hoge" path="/pages/Welcome.jsp"></forward>
</action>
</action-mappings>
--表示時のHTMLソース--
<html>
<head>
<base href="http://localhost:8083/struts-blank-1.3.10/pages/Welcome.jsp">
</head>
<body bgcolor="white">
<select name="yearValue"><option value="2008">2008</option>
<option value="2009">2009</option>
<option value="2010" selected="selected">2010</option>
<option value="2011">2011</option></select>
</body>
</html>
A.javaの
b.yearValue = "2010";
を
b.yearValue = "2009";
とした場合には、ちゃんと2009が選択された状態で表示されました。
お礼
お礼できずにすみませんでした。 どうやら、根本的な勘違いをしていたみたいです。 ありがとうございました。