小弟有个关于struts2 if框架 模型驱动和属性驱动的问题 比较麻烦 加q 1421986555 多谢多谢

关于struts2一个form中有多个submit按钮验证的问题!!!
[问题点数:20分]
关于struts2一个form中有多个submit按钮验证的问题!!!
[问题点数:20分]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
相关帖子推荐:
2008年2月 总版技术专家分月排行榜第一2008年1月 总版技术专家分月排行榜第一
2008年7月 总版技术专家分月排行榜第三2008年6月 总版技术专家分月排行榜第三
2011年12月 扩充话题大版内专家分排名第三
本帖子已过去太久远了,不再提供回复功能。ssh使用tiles框架,怎么使用struts2自定义的过滤器,例如过滤未登陆的用户?希望有个具体的例子!!_百度知道
ssh使用tiles框架,怎么使用struts2自定义的过滤器,例如过滤未登陆的用户?希望有个具体的例子!!
struts2可以通过配置interceptor来实现过滤未登录用户,在struts.xml文件中进行配置即可。&package name=&edufe-default& extends=&struts-default&&
&interceptors&
&!-- 校验用户是否登录用拦截器 --&
&interceptor name=&checkLoginInterceptort& class=&.inteceptor.CheckLoginInterceptor&/&
&!-- 定义拦截器栈 --&
&interceptor-stack name=&MyDefaultStack&&
&interceptor-ref name=&checkLoginInterceptort&&
&param name=&actionNames&&testLogin&/param&
&param name=&loginPath&&outSys&/param&
&/interceptor-ref&
&interceptor-ref name=&defaultStack&&&/interceptor-ref&
&/interceptor-stack&
&/interceptors&
&default-interceptor-ref name=&MyDefaultStack&&&/default-interceptor-ref& &/package& public class CheckLoginInterceptor extends AbstractInterceptor
{ private static final long serialVersionUID = 8963442L;
@SuppressWarnings(&unchecked&) public String intercept(ActionInvocation ai) throws Exception
Object action = ai.getAction();
//获取当前操作系统文件路径分隔符
String separator = System.getProperty(&file.separator&);
HttpServletRequest request = ServletActionContext.getRequest();
String requestUrl =
request.getRequestURI();
int tempInt = CommonTools.getSitesInString(requestUrl, &/&).get(1);
requestUrl = requestUrl.substring(tempInt);
Map session = ai.getInvocationContext().getSession();
String login = (String) session.get(&USERID&);
if(!CommonTools.isNullString(login) || !CommonTools.isNullString(examLogin) || singup != null
|| student != null || 眼馍轨忌呓涣郭惟憾隶agency != null){
return ai.invoke();
//获得服务器绝对路径
String rootUrl = ServletActionContext.getServletContext().getRealPath(&/&);
//读取src\myXML文件夹下的Permissions.xml文件
DataDictionaryXmlParseUtil myPermissions = DataDictionaryXmlParseUtil.getInstance(rootUrl+&WEB-INF&+separator+&classes&+separator+&myXML&+separator+CommonConstants.PERMISSION_XML);
//得到允许不通过拦截器的url地址列表
List&String& permissionList = myPermissions.getDataMap().get(CommonConstants.REQUEST_RUL_KEY);
//比较是否有列表中的数据
for (String permissUrl:permissionList){
if (requestUrl!=null && requestUrl.equalsIgnoreCase(permissUrl)){
return ai.invoke();
return &no.access&;
我说的是ssh使用tiles框架!!虽然你答非所问,不过还是谢谢你,我通过其他方式知道了答案参考:
其他类似问题
struts2的相关知识
按默认排序
其他1条回答
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁1887人阅读
常用第一种跟第二种
1.Action属性传参数:
建议:属性应该与参数名相同。
在一个继承ActionSupport类中添加接收参数的属性,并生成其get() set()方法,在请求中附带参数和对应的值,在struts2帮我们new这个类的时候,会自动调用get,set方法给属性填值。如果属性也参数名不同,那么生成的get,set方法将不能为属性填值。总之,setXXX()中的XXX指的是参数名。
2.Domain modal(域模型)接收参数:
对于接收到的参数,会放到一个数据模型,以便于插入到数据库。当Action接收的参数太多,用第一种的方式接收参数,感觉不舒服。在URL中Modal.property=value来为数据模型对象填充数据,这个方式实际上是调用了数据模型的setXXX()方法。在Action中我们并不需要new数据模型对象,struts2帮我们做了new这个过程。
实际中,传人参数的个数跟数据模型属性的个数并不相同。这是就会用到DTO(数据转换对象),也有人叫VO,DO,用这个DTO接收数据后,然后填充到数据模型中。
Modal driven接收参数:
要使用ModalDriven时,继承ActionSupport的同时还需要实现ModalDriven接口,这个接口有一个T getModal()方法。在这里,struts2将不再自动new数据模型对象,要手动new。参数还是应该和数据模型的属性相同。这种方式不常用。
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:273768次
积分:4201
积分:4201
排名:第2262名
原创:144篇
转载:14篇
评论:95条
(9)(16)(1)(2)(3)(14)(11)(31)(30)(36)(6)struts2属性驱动和模型驱动_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
评价文档:
21页免费70页免费4页免费4页免费3页免费 4页免费3页免费2页1下载券11页1下载券1页免费
喜欢此文档的还喜欢41页1下载券54页1下载券85页1下载券49页免费89页免费
struts2属性驱动和模型驱动|个
把文档贴到Blog、BBS或个人站等:
普通尺寸(450*500pix)
较大尺寸(630*500pix)
你可能喜欢所有回答(7)
那么M呢?模型由谁来实现?是普通的javabean吗?请大侠指教
你的javabean指的是什么我不清楚。我写过的代码m就是逻辑层的代码(比如拿一个登录模块来说,这里的逻辑是指用户名和密码的验证)。逻辑层会调用到dao层的实例(dao层即数据库操作,比如select 用户名和密码)
1.你的理解和我理解一致。至于M,普通Javabean可以,但是更加面向对象的领域驱动的Model都是封装好了很多业务方法(例如银行账户类里面可能直接封装了转账方法)。直接供C调用。
2.Servlet处理客户端请求。拦截器和过滤器属于AOP概念(个人理解),listenner就是事件监听咯。都是不同思路的解决方法而已。Struts可以看成一个被很多拦截器拦截了的Servlet(如参数获取等等都被拦截处理了。)用了Struts就应该比较少用Servlet了,除非一些Struts完成不了的或者你希望你的效率增加(因为Struts的拦截器太多,肯定影响速度,当然你可以逐个配置)
3.取其精华去其糟粕就能回答你的问题。哪个方面好用就用哪个。PS:Spring还有很重要的部分是AOP
4.暂时没有理解。不过个人建议,培训机构的那些老师,不要太当真。
你一次不需要知道那么多。。这样越弄越糊涂。。mvc只是传统的概念,你不需要一定要把什么什么比作M,什么什么比作V,你能明白么,至于interceptor,filter都还是比较高级的主题,用的也很少,你现在基础都很混乱。李刚的那本书只是个工具书,你明白么,象字典一样的工具书。
你说的好糊涂,能简单点描述吗,需要实现什么
网站开发两年,经验不足,结合楼主的问题,谈一下自己的认识,说的不对,请指正。1.如楼上所言,mvc只是传统的概念,你不需要一定要把什么什么比作M,什么什么比作V。struts 通过action和xml等的配置,实现了请求的控制,标签等的使用,辅助jsp完成view层的显示。2.spring更像一个容器,它可以结合其他的框架,如struts和hibernate等,当然他有自己的spring MVC框架也。spring的核心概念IOC和AOP,IOC是利用反射,实现各层的解耦(如业务层和数据访问层解耦),也就是在xml里去配置的方式实现。AOP也就是面向切面编程,其实也是利用反射(或者是动态代理),来实现一些共通的解耦和复用,如日志,校验,权限,事物等共通的东西。3.servlet包下是java封装好的面向网络编程的一些类和接口。包括servet,filter,listener等。servlet是java封装好的面向网络编程的接口,我们一般做网站是使用的它的子子类HttpServlet,也就是面向http协议的servlet。用来处理对请求的处理,处理过程需要我们来实现。filter是sevlet包下的一个接口,是对数据传输过程中的过滤。应用责任链设计模式,请求通过之后,继续传递到下一个链,也就是servlet。listener是利用观察者设计模式,对servlet中对某些封装好的类(如request,session,context)的对象的动作进行观察,发生变化,做出相应动作。(如session创建和销毁,变更在线人数统计)。4.spring和struts都是对java提供的servlet进行了封装。struts的流程:请求通过filter-&intercepter-&action。intercepter和action是对servlet的代理,intercetper的执行流程是(【调用前自己的处理】-&实际的调用-&【调用后自己的处理】,这个实际的调用又会传到下一层的intercepter,也是这个流程,直到最后的实际调用是action。这样的好处是:action只写一些业务的调用和控制。intercepter来处理一些共通的逻辑(如类型转换,文件上传)等的拦截。 而不用到每个action都重复写一堆相同的操作。逻辑层次更加清晰了。
当我们用所谓的mvc的时候我们其实用的不是三层而是4层,我们把JSP当视图,JSP发送请求,传递给ACTION,action调用业务逻辑的方法,业务逻辑调用DAO层解决问题,一般情况下我们有action包,service包,serviceImpl 包,dao包,daoImpl实现包 ,为了实现高内聚 低耦合,宗旨是JSP只想action发请求,action只调用service也就是业务逻辑(比如你验证用户,就在这里进行计算得到返回值),service只调用dao层次取数据,dao层当然现在都用hibernate来解决也就是用javabean.所谓的模型即是业务逻辑跟数据层的结合。
关于过滤器,拦截器之类的区别这个看书比较好,可意会不可言传的感觉,自己理解了会觉得一目了然、
现在的spring已经不怎么喜欢整合struts2了,因为性能要求越来越高,struts2的ognl与标签在性能上没有好的表现
spring实现代码之间的低耦合,用spring容器管理javabean,struts2的C实现了某种方式的封装,servlet本身就是C,正规的servlet里面是不允许有任何逻辑代码的 只对业务逻辑进行调用,而现在spring mvc实现了此功能
最后一个懒得去看 李刚的疯狂java EE就是shit写的书就是抄的感觉
我来回答下你的第一个问题,是个人看法哈。struts框架的使用,只是取代了web中MVC的C,其他两层是不变的,M依然是javabean.spring的主要功能是依赖注入,他是用来管理srtuts、action、javabean的。
&&&您需要以后才能回答,未注册用户请先。}

我要回帖

更多关于 struts2 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信