我是一名Struts 1.3.10新手,我有一个问题,我的Action
名为RegistrationAction
,如下所示:
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();
然后,用户ID和密码将保存到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());
我认为JSP中的RegistrationForm
引用如:
<h1>Hello <bean:write name="RegistrationForm" property="_userid" />!</h1>
会工作吗?
有人能说出我错的地方吗?
感谢受访者。该页面现在有效。
答案 0 :(得分:2)
JSP标记和JSP EL,访问bean 属性,而不是bean 字段。因此,如果您传递_userId
,它将查找名为get_userId()
的getter方法。由于您要访问getter getUserId()
,因此您需要在代码中使用userId
。
答案 1 :(得分:0)
尝试
<h1>Hello <bean:write name="RegistrationForm" property="userid" />!</h1>
你的formbean的内部名称/编码是什么并不重要。重要的是吸气剂和二传手的命名方式。您的getter名为getUserid()
,javabean属性为userid
。
答案 2 :(得分:0)
1)添加您的RegistrationForm以请求
request.setAttribute("RegistrationForm",formBean);
2)从_userId变量
中删除_