在Struts中的ActionForm訪問一個值我一個Struts 1.3.10新手,我有一個問題,我有一個名爲RegistrationAction
作爲Action
如下:從JSP
public final class RegistrationAction extends Action{
@Override
public ActionForward execute(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws Exception{
RegistrationForm formBean = (RegistrationForm) form;
String userid = formBean.getUserid();
String pwd = formBean.getPassword();
的用戶名和密碼,然後保存到HashMap<String, String>
,屬性爲_userid
和pwd
。
RegistrationAction
然後在userid
和password
的驗證成功時調用JSP。但是,我發現是,在JSP,不被使用下面的代碼顯示的用戶名:
<h1>Hello <bean:write name="RegistrationForm" property="_userid" />!</h1>
匹配ActionForm RegistrationForm
包含如下的_userid
領域:
public final class RegistrationForm extends ActionForm{
private String _userid = null;
public String getUserid(){ return _userid; }
public void setUserid(String userid){ _userid = userid; }
...
我知道的的RegistrationForm
實例被填充,因爲我可以檢索輸入_userid
通過:
if(err == RegistrationModel.OK){
System.out.println("Here " + model.getUserid());
我認爲如在RegistrationForm
參考在JSP:
<h1>Hello <bean:write name="RegistrationForm" property="_userid" />!</h1>
會工作。
任何人都可以提出我錯在哪裏?
感謝受訪者。該頁面現在可以運行。
'_userid'是可怕的一個屬性的可惡名稱不確認的Java的命名約定。你不應該再使用它了。 – Lion
同意。 '_userid'僅僅是Struts示例中使用的一個名稱,我之前從未運行正常,直到此問題已發佈,而另一個則是昨天。現在我已經有了這個例子,我將把這個名字改爲'userName'或者其他的。 –