Java Web访问.action,java – 如何在JSP中访问ActionBeanContext?

我是Stripes的新手,感谢每一个让我更接近功能强大的网络应用程序的提示!

技术设置:java,动态web项目,条带,jsp

场景:

用户可以登录(index.jsp).在正确的电子邮件地址和密码(LoginFormActionBean.java)之后,用户被转发到欢迎页面(loggedin.jsp).

此欢迎页面上的内容类似于“welcome< username&gt ;,您已成功登录!”.

执行:

我在index.jsp中有一个表单,我在其中获取用户输入并将其传递给LoginFormActionBean.java中的方法 – >作品!

在相应的方法中,我检查用户是否正确,如果是,我将用户插入ActionBeanContext:

getContext.setUser(loggedinUser);

之后我转发到loggedin.jsp:

return new ForwardResolution("/loggedin.jsp");

loggedin.jsp包含以下重要行:

...

${loggedinBean.context.user} //show the whole user object

...

...

LoggedinBean.java包含MyActionBeanContext属性(如LoginFormActionBean.java).

从我使用的上下文中获取userobject:

public String getUser(){

return getContext().getUser().toString();

}

此外,LoggedinBean.java包含一个方法,该方法使用@DefaultHandler注释并转发到loggedin.jsp(同一页面)

结果:

现在,会发生什么:正确登录后,我被转发到loggedin.jsp,

“${loggedinBean.context.user}”行是空的,<< s:text> -field.

但是在点击“PrintUser”按钮之后,< s:“TextForm”-form中的text> -field填充了登录用户的用户对象!

结论:

我认为发生的是,在我手动执行bean中的方法之前,没有调用LoggedinBean.java的“setContext()”方法.因为在按下按钮之前没有调用bean中的“setContext()”方法!

online documentation表示在JSP中使用context属性只需编写“${actionBean.context.user}”.但是上下文是空的!

即使是“实用条纹”一书(2008)也没有提供有关使用ActionBeanContext的更多信息.

题:

那里发生了什么?

我如何获得“${loggedinBean.context.user}”行来显示登录用户?

我怎样才能得到< s:text> -field在加载JSP后显示用户对象,但是没有按下按钮?

我希望我的问题很明确,我的言论令人满意

解决方法:

我想推荐使用MVC pattern.这种模式将导致一个实现,Action Beans将充当处理所有http请求的控制器,JSP页面将成为逻辑很少的被动视图,只能通过Action Bean控制器访问(不再能直接访问JSP页面!).

如果使用此模式,则JPS中始终有一个“actionBean”,因此您可以引用${actionBean.context}(参见:getContext).

标签:java,stripes

来源: https://codeday.me/bug/20190710/1420730.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值