我是一个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.