我是 Struts 1.3.10 新手,我有一个问题,我有一个叫做 RegistrationAction
的Action
,如下所示:
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();
然后将用户标识和密码保存到具有属性 _userid
和 pwd
的HashMap<String, String>
中。
然后,如果userid
和password
的验证成功,RegistrationAction
调用 JSP。但是我发现在JSP中,没有使用以下代码显示用户ID:
<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>
会工作。
谁能指出我错在哪里?
感谢受访者。该页面现在可以工作了。
JSP 标记和 JSP EL 访问 Bean 属性,而不是 Bean 字段。所以如果你通过_userId
,它将寻找一个名为get_userId()
的getter方法。由于您要访问 getter getUserId()
,您需要在标签中使用userId
。
尝试
<h1>Hello <bean:write name="RegistrationForm" property="userid" />!</h1>
表单Bean的内部名称/编码是什么并不重要。重要的是getter和setter如何命名。你的 getter 被命名为 getUserid()
javabean 属性是 userid
.
1) 添加您的注册表以请求
request.setAttribute("RegistrationForm",formBean);
2) 从_userId变量中删除 _