??xml version="1.0" encoding="utf-8" standalone="yes"?>av激情久久,精品国产欧美一区二区,久久久综合网站http://www.aygfsteel.com/zhaochengming/category/33929.html 知止而后有定Q定而后能静Q静而后能安Q安而后能虑Q虑而后能得。物有本末,事有l始。知所先后Q则q道矣?/description>zh-cnFri, 29 Jul 2011 15:25:04 GMTFri, 29 Jul 2011 15:25:04 GMT60Spring提供了MethodNameResolver的三U方?转自Qhttp://www.360doc.com/content/10/0329/17/968587_20751507.shtmlhttp://www.aygfsteel.com/zhaochengming/archive/2011/07/29/355336.htmlhelloworld2008helloworld2008Fri, 29 Jul 2011 08:00:00 GMThttp://www.aygfsteel.com/zhaochengming/archive/2011/07/29/355336.htmlhttp://www.aygfsteel.com/zhaochengming/comments/355336.htmlhttp://www.aygfsteel.com/zhaochengming/archive/2011/07/29/355336.html#Feedback0http://www.aygfsteel.com/zhaochengming/comments/commentRss/355336.htmlhttp://www.aygfsteel.com/zhaochengming/services/trackbacks/355336.html
1 : ParameterMethodNameResolver,q个可以Ҏh的参数来定一个需要调用的Ҏ?br />例如Q?a >http://www.sf.net/index.view?testParam=testItQ这个请求会调用名称为testIt的处理方法?br />
2 : InternalPathMethodNameResolverQ这个可以根据请求的路径名称来调用相应的Ҏ?br />例如Q?a >http://www.sf.net/testing.view,q个h会调用testingҎ?br />
3 : PropertiesMethodNameResolverQ这个可以根据一个URLs 映射列表来调用相应的Ҏ?br />例如Q如果定义了/index/welcome.html=doItQ那么当h?index/welcome.htmlӞ会调用doItҎ。在定义URLs时可以用通配W?**/welcom?.html



ParameterMethodNameResolver
InternalPathMethodNameResolver
PropertiesMethodNameResolver
配置web.xml
Java代码
1. <servlet>
2. <servlet-name>spring</servlet-name>
3. <servlet-class>
4. org.springframework.web.servlet.DispatcherServlet
5. </servlet-class>
6. <load-on-startup>2</load-on-startup>
7. </servlet>
8. <servlet-mapping>
9. <servlet-name>spring</servlet-name>
10. <url-pattern>/spring/*</url-pattern>
11. </servlet-mapping>
定义一个Controllerl承与MultiActionController
Java代码
1. package cn.iwoo.server.controller;
2.
3. import javax.servlet.http.HttpServletRequest;
4. import javax.servlet.http.HttpServletResponse;
5.
6. import org.springframework.web.servlet.ModelAndView;
7. import org.springframework.web.servlet.mvc.multiaction.MultiActionController;
8.
9. public class BController extends MultiActionController {
10. public ModelAndView doSearch(HttpServletRequest request, HttpServletResponse response) throws Exception {
11. System.out.println(this.getClass() + "." + "doSearch()");
12. return new ModelAndView("");
13. }
14. }
Ҏ的定义必ȝ合下面的格式
Java代码
1. public (ModelAndView | Map | String | void) actionName(HttpServletRequest request, HttpServletResponse response);
定义ViewResolver
Java代码
1. <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
热点推荐
中国民间术、原来如?br />癑ּ三维立体?br />C交CgA讲
75
Z么要使用三家肉不能吃的中国各省人口排发醒:一个一个h的世?br />新概念英语学习英语名人名a
l典感悟的十个现实生zM的你[原创
壮哉Q?br />落伍没?盘点
宁静Q音画)
l想q事的h以卫星电视初学者相x?
Spring架构设计-增强MultiActionController
MultiActionControllerl定command
Spring的MultiActionController使用
推荐圈子: GT-Grid
更多相关推荐
Google
Java
Spring Wire
MVC
Compression Spring
关闭
MultiActionController?UMethodNameResolver的配|?a >http://www.360doc.com/content/10/0329/17/968587_20...
W????011-07-29 15:59
<property name="viewClass"><value>org.springframework.web.servlet.view.JstlView</2. value></property>
3. <property name="prefix"><value>/WEB-INF/jsp/</value></property>
4. <property name="suffix"><value>.jsp</value></property>
5. </bean>
定义UrlHandlerMapping
Java代码
1. <bean id="urlHandlerMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
2. lt;property name="urlMap">
3. <map>
4. <entry key="/b/*"><ref bean="bController"></ref></entry>
5. </map>
6. lt;/property>
7. </bean>
定义MethodNameResolver
一共定义了3个不同类型的MethodNameResolver.
Java代码
1. <!-- MethodNameResolver Definition -->
<bean id="bMethodNameResolver" class="org.springframework.web.servlet.mvc.multiaction.ParameterMethodNameResolver">
2.
3. <property name="paramName" value="method"></property>
4. <property name="logicalMappings">
5. <props>
6. <prop key="doSearch">doSearch</prop>
7. </props>
8. </property>
9. </bean>
10.
<bean id="cMethodNameResolver" class="org.springframework.web.servlet.mvc.multiaction.InternalPathMethodNameResolver">
11.
12. </bean>
13.
<bean id="dMethodNameResolver" class="org.springframework.web.servlet.mvc.multiaction.PropertiesMethodNameResolver">
14.
15. <property name="mappings">
16. <value>
17. /b/page.html=doSearch
18. </value>
19. </property>
20. </bean>
定义Controller
Java代码
1. <!-- Controller Definition -->
2. <bean id="bController" class="cn.iwoo.server.controller.BController">
3. <!-- <property name="methodNameResolver"><ref local="bMethodNameResolver"/></property> -->
4. <!-- <property name="methodNameResolver"><ref local="cMethodNameResolver"/></property> -->
5. <property name="methodNameResolver"><ref local="dMethodNameResolver"/></property>
6. </bean>

下面是对应于不同MethodNameResolver的测试url.
http://localhost:9080/cn.iwoo/spring/b?method=doSearch
http://localhost:9080/cn.iwoo/spring/b/doSearch
http://localhost:9080/cn.iwoo/spring/b/page.html
?/b/是我的controller的映前~,在PropertiesMethodNameResolver的mappings配置里面,|址必须?b/开?也就是controller的前~也需
要写q去. q是我测试的l果,不知是否必须q样.



helloworld2008 2011-07-29 16:00 发表评论
]]>
spring aop execution pointcuthttp://www.aygfsteel.com/zhaochengming/archive/2011/07/25/355006.htmlhelloworld2008helloworld2008Mon, 25 Jul 2011 09:36:00 GMThttp://www.aygfsteel.com/zhaochengming/archive/2011/07/25/355006.htmlhttp://www.aygfsteel.com/zhaochengming/comments/355006.htmlhttp://www.aygfsteel.com/zhaochengming/archive/2011/07/25/355006.html#Feedback0http://www.aygfsteel.com/zhaochengming/comments/commentRss/355006.htmlhttp://www.aygfsteel.com/zhaochengming/services/trackbacks/355006.html

Spring AOP 用户可能会经怋?execution pointcut designator。执行表辑ּ的格式如下:

execution(modifiers-pattern? ret-type-pattern declaring-type-pattern? name-pattern(param-pattern) throws-pattern?)

除了q回cd模式Q上面代码片断中的ret-type-patternQ,名字模式和参数模式以外,所有的部分都是可选的?q回cd模式军_了方法的q回cd必须依次匚w一个连接点?你会使用的最频繁的返回类型模式是 * Q它代表了匹配Q意的q回cd?一个全U限定的cd名将只会匚wq回l定cd的方法。名字模式匹配的是方法名?你可以?* 通配W作为所有或者部分命名模式?参数模式E微有点复杂Q?/span>() 匚w了一个不接受M参数的方法, ?(..) 匚w了一个接受Q意数量参数的ҎQ零或者更多)?模式 (*) 匚w了一个接受一个Q何类型的参数的方法?模式 (*,String) 匚w了一个接受两个参数的ҎQ第一个可以是LcdQ第二个则必LStringcd?/span>

下面l出一些常见切入点表达式的例子?/p>

  • L公共Ҏ的执行:

    execution(public * *(..))
  • M一个以“set”开始的Ҏ的执行:

    execution(* set*(..))
  • AccountService 接口的Q意方法的执行Q?/p>

    execution(* com.xyz.service.AccountService.*(..))
  • 定义在service包里的Q意方法的执行Q?/p>

    execution(* com.xyz.service.*.*(..))
  • 定义在service包或者子包里的Q意方法的执行Q?/p>

    execution(* com.xyz.service..*.*(..))
 

within(com.xyz.service.*)在service包或者子包里的Q意连接点Q在Spring AOP中只是方法执行) Q?nbsp; 

within(com.xyz.service..*)实现?AccountService 接口的代理对象的Lq接点(在Spring AOP中只是方法执行) Q?nbsp; 

this(com.xyz.service.AccountService)'this'在binding form中用的更多:- 请常见以下讨论通知的章节中关于如何使得代理对象可以在通知体内讉K到的部分?nbsp;  
实现?AccountService 接口的目标对象的Lq接点(在Spring AOP中只是方法执行) Q?nbsp; 
 
target(com.xyz.service.AccountService)'target'在binding form中用的更多:- 请常见以下讨论通知的章节中关于如何使得目标对象可以在通知体内讉K到的部分?nbsp;  
M一个只接受一个参敎ͼ且在q行时传入的参数实现?Serializable 接口的连接点 Q在Spring AOP中只是方法执行)   
 
args(java.io.Serializable)'args'在binding form中用的更多:- 请常见以下讨论通知的章节中关于如何使得Ҏ参数可以在通知体内讉K到的部分?nbsp;  
h意在例子中给出的切入点不同于 execution(* *(java.io.Serializable))Q?args只有在动态运行时候传入参数是可序列化的(SerializableQ才匚wQ而execution 在传入参数的{֐声明的类型实C Serializable 接口时候匹配?nbsp; 
 
有一?@Transactional 注解的目标对象中的Q意连接点Q在Spring AOP中只是方法执行)   

@target(org.springframework.transaction.annotation.Transactional)'@target' 也可以在binding form中用:请常见以下讨论通知的章节中关于如何使得annotation对象可以在通知体内讉K到的部分?nbsp;  
M一个目标对象声明的cd有一?@Transactional 注解的连接点Q在Spring AOP中只是方法执行)  

@within(org.springframework.transaction.annotation.Transactional)'@within'也可以在binding form中用:- 请常见以下讨论通知的章节中关于如何使得annotation对象可以在通知体内讉K到的部分?nbsp;  
M一个执行的Ҏ有一?@Transactional annotation的连接点Q在Spring AOP中只是方法执行)   

@annotation(org.springframework.transaction.annotation.Transactional)'@annotation' 也可以在binding form中用:- 请常见以下讨论通知的章节中关于如何使得annotation对象可以在通知体内讉K到的部分?nbsp;  
M一个接受一个参敎ͼq且传入的参数在q行时的cd实现?@Classified annotation的连接点Q在Spring AOP中只是方法执行)   
 
@args(com.xyz.security.Classified)'@args'也可以在binding form中用:- 请常见以下讨论通知的章节中关于如何使得annotation对象可以在通知体内讉K到的部分?/p>



helloworld2008 2011-07-25 17:36 发表评论
]]>
spring和Hibernate整合时候的asm包冲H?转自(http://apps.hi.baidu.com/share/detail/33127760)http://www.aygfsteel.com/zhaochengming/archive/2011/07/25/355003.htmlhelloworld2008helloworld2008Mon, 25 Jul 2011 09:14:00 GMThttp://www.aygfsteel.com/zhaochengming/archive/2011/07/25/355003.htmlhttp://www.aygfsteel.com/zhaochengming/comments/355003.htmlhttp://www.aygfsteel.com/zhaochengming/archive/2011/07/25/355003.html#Feedback0http://www.aygfsteel.com/zhaochengming/comments/commentRss/355003.htmlhttp://www.aygfsteel.com/zhaochengming/services/trackbacks/355003.html

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'SessionFactory' defined in ServletContext resource [/WEB-INF/classes/applicationContext.xml]: Invocation of init method failed; nested exception is java.lang.NoSuchMethodError: org.objectweb.asm.ClassVisitor.visit(IILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)VCaused by: java.lang.NoSuchMethodError: org.objectweb.asm.ClassVisitor.visit(IILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)V at net.sf.cglib.core.ClassEmitter.begin_class(ClassEmitter.java:77)

|上的说法真是良莠不?最l找?span style="color: #009900">能解决问题的Ҏ
(折腾我一下午,快疯?

原因Q?/span>

在用Spring的AOP~程Ӟ会用到这几个libQ?br />asm-2.2.2.jar
asm-commons-2.2.2.jar
asm-util-2.2.2.jar
Hibernate使用如下libQ?/strong>
asm.jar
asm-attrs.jar


其中asm-2.2.2.jar与asm.jar存在cM的冲H!Q!
使用其中之一或两者都使用Q可能会出现如下错误Q?br />java.lang.NoClassDefFoundError: org/objectweb/asm/CodeVisitor
java.lang.NoClassDefFoundError: org/objectweb/asm/commons/EmptyVisitor
java.lang.NoSuchMethodError: org.objectweb.asm.ClassVisitor.visit

 

解决ҎQ?/font>

1.Lc\径上的关于Hibernate?个lib
asm.jar
asm-attrs.jar
cglib-2.1.2.jar
2.加入Spring中的以下4个lib
asm-2.2.2.jar
asm-commons-2.2.2.jar
asm-util-2.2.2.jar
cglib-nodep-2.1_3.jar

自己的一个小试Q?(q行环境Qapache-tomcat-5.5.15 + .MyEclipse_5.5GA_E3.2.2 )

整合ssh目? ?Tomcat 部v的环境中 D:\tomcat\webapps\my\WEB-INF\lib 发生了点异常Q同时有
asm.jar、asm-attrs.jar、asm-2.2.3.jar ?asm-commons-2.2.3.jar
asm-util-2.2.3.jar?cglib-nodep-2.1_3.jar
在启动tomcat中不会出现异怿息?我想asm-2.2.3jar可能在一定程度上作了改进?

当在D:\tomcat\webapps\my\WEB-INF\lib 下加?/font> cglib-2.1.3.jar
会报上面的java.lang.NoSuchMethodError:
org.objectweb.asm.ClassVisitor.visit错误信息?/font> 说明cglib-2.1.3.jar与其它包发生了冲H?/font>?/strong>
删除cglib-2.1.3.jar问题解决!


helloworld2008 2011-07-25 17:14 发表评论
]]>
spring学习W记 W四?/title><link>http://www.aygfsteel.com/zhaochengming/archive/2008/09/03/226797.html</link><dc:creator>helloworld2008</dc:creator><author>helloworld2008</author><pubDate>Wed, 03 Sep 2008 14:39:00 GMT</pubDate><guid>http://www.aygfsteel.com/zhaochengming/archive/2008/09/03/226797.html</guid><wfw:comment>http://www.aygfsteel.com/zhaochengming/comments/226797.html</wfw:comment><comments>http://www.aygfsteel.com/zhaochengming/archive/2008/09/03/226797.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/zhaochengming/comments/commentRss/226797.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/zhaochengming/services/trackbacks/226797.html</trackback:ping><description><![CDATA[     摘要:   4.1 AOP入门 l         从代理机制初探AOP 例子4.1.1 interface IHi {     public...  <a href='http://www.aygfsteel.com/zhaochengming/archive/2008/09/03/226797.html'>阅读全文</a><img src ="http://www.aygfsteel.com/zhaochengming/aggbug/226797.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/zhaochengming/" target="_blank">helloworld2008</a> 2008-09-03 22:39 <a href="http://www.aygfsteel.com/zhaochengming/archive/2008/09/03/226797.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>spring学习W记 W三?/title><link>http://www.aygfsteel.com/zhaochengming/archive/2008/09/03/223302.html</link><dc:creator>helloworld2008</dc:creator><author>helloworld2008</author><pubDate>Wed, 03 Sep 2008 14:37:00 GMT</pubDate><guid>http://www.aygfsteel.com/zhaochengming/archive/2008/09/03/223302.html</guid><wfw:comment>http://www.aygfsteel.com/zhaochengming/comments/223302.html</wfw:comment><comments>http://www.aygfsteel.com/zhaochengming/archive/2008/09/03/223302.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/zhaochengming/comments/commentRss/223302.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/zhaochengming/services/trackbacks/223302.html</trackback:ping><description><![CDATA[     摘要:   3.1 Bean基本原理 BeanFactory 负责dBean的定义文Ӟ理对象的加?生成,l护,与对象之间的依赖关系。提供的功能比较单?ApplicationContext 提供一些特色以及高U的容器功能。大概有3个实现类Q?l         FileSystemXmlApplic...  <a href='http://www.aygfsteel.com/zhaochengming/archive/2008/09/03/223302.html'>阅读全文</a><img src ="http://www.aygfsteel.com/zhaochengming/aggbug/223302.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/zhaochengming/" target="_blank">helloworld2008</a> 2008-09-03 22:37 <a href="http://www.aygfsteel.com/zhaochengming/archive/2008/09/03/223302.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <a href="http://www.aygfsteel.com/" title="狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频">狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频</a> </div> </footer> վ֩ģ壺 <a href="http://" target="_blank">ͭϿ</a>| <a href="http://" target="_blank">¡</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ɽ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">˫Ѽɽ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">书</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ɽ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ƽ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">괨</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">¡</a>| <a href="http://" target="_blank">᰸</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">½</a>| <a href="http://" target="_blank">ƽ</a>| <a href="http://" target="_blank">ԭ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ֶ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">̫</a>| <a href="http://" target="_blank">ɿ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">DZ</a>| <a href="http://" target="_blank">ϰ</a>| <a href="http://" target="_blank">봨</a>| <a href="http://" target="_blank"></a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>