java – 如何在JSP中访问ActionBeanContext?
我是Stripes的新手,感谢每一个让我更接近功能强大的网络应用程序的提示!
技术设置:java,动态web项目,条带,jsp 场景: 用户可以登录(index.jsp).在正确的电子邮件地址和密码(LoginFormActionBean.java)之后,用户被转发到欢迎页面(loggedin.jsp). 在相应的方法中,我检查用户是否正确,如果是,我将用户插入ActionBeanContext: getContext.setUser(loggedinUser); 之后我转发到loggedin.jsp: return new ForwardResolution("/loggedin.jsp"); loggedin.jsp包含以下重要行: <jsp:useBean id="loggedinBean" class="mywebapp.controller.LoggedinBean" scope="session" /> ... ${loggedinBean.context.user} //show the whole user object ... <s:form beanclass="mywebapp.controller.LoggedinBean" name="ButtonForm"> <s:submit name="foo" value="PrintUser" /> </s:form> <s:form beanclass="mywebapp.controller.LoggedinBean" name="TextForm"> <s:text name="user" /> </s:form> ... LoggedinBean.java包含MyActionBeanContext属性(如LoginFormActionBean.java). 从我使用的上下文中获取userobject: public String getUser(){ return getContext().getUser().toString(); } 此外,LoggedinBean.java包含一个方法,该方法使用@DefaultHandler注释并转发到loggedin.jsp(同一页面) 结果: 现在,会发生什么:正确登录后,我被转发到loggedin.jsp, 但是在点击“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 – 如何查看solr索引的所有数据?
- java – 如何在回收站视图中使用OnClickListener
- mybatis 中 foreach collection的用法小结(三种)
- java – Switch语句,默认为先前定义的switch cas
- Java通过递归进行二叉树遍历
- Java – 使用runtime.getRuntime().exec运行Exce
- java – 为什么我坚持不会发生什么?
- java – 如何使用Guice在Android Activity中注入
- java – public static void main中的代码,或者在
- java – 任何人都可以向我解释tools.jar(它绑在j