java – 从JSP访问Struts ActionForm中的值

我是一个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();

然后将用户标识和密码保存到HashMap< String,String>使用_userid和pwd属性.

如果用户标识和密码的验证成功,则RegistrationAction将调用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>

会工作.

任何人都可以建议我错在哪里?

感谢受访者.该页面现在有效.

最佳答案 JSP标记和JSP EL访问bean属性,而不是bean字段.因此,如果您传递_userId,它将查找名为get_userId()的getter方法.由于您要访问getter getUserId(),因此需要在标记内使用userId.

点赞