锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲av中文无码,浮力影院亚洲国产第一页,国产成人亚洲综合在线 http://www.tkk7.com/Hafeyang/category/39346.html闀夸簬鍓嶇寮鍙戙備箰鎰忓垎浜?/description>zh-cn Mon, 29 Nov 2010 14:53:11 GMT Mon, 29 Nov 2010 14:53:11 GMT 60 鏁村悎struts2,spring-struts2鐨剆pring鎻掍歡浣跨敤鍙婄畝鍗曞墫鏋?/title> http://www.tkk7.com/Hafeyang/archive/2010/11/28/integration_of_spring_struts2_using_struts-spring-plugin_and_how_it_works.html闃寵 閿?/dc:creator>闃寵 閿?/author>Sun, 28 Nov 2010 15:45:00 GMT http://www.tkk7.com/Hafeyang/archive/2010/11/28/integration_of_spring_struts2_using_struts-spring-plugin_and_how_it_works.html http://www.tkk7.com/Hafeyang/comments/339277.html http://www.tkk7.com/Hafeyang/archive/2010/11/28/integration_of_spring_struts2_using_struts-spring-plugin_and_how_it_works.html#Feedback 0 http://www.tkk7.com/Hafeyang/comments/commentRss/339277.html http://www.tkk7.com/Hafeyang/services/trackbacks/339277.html struts2涓巗pring鐨勬暣鍚堜腑鏈変竴縐嶆柟娉曟槸閫氳繃struts-spring-plugin錛屼嬌鐢ㄨ鎻掍歡鎸囧畾struts涓殑objectfactory涓簊pring鐨刡eanfactory,綆鍗曠殑璇達紝灝辨槸浣跨敤spring 鐨刡ean瀹瑰櫒綆$悊struts鐨凙ction鐨勫疄渚嬪寲銆?br />
浣跨敤姝ラ錛?br />
1.寮曞叆struts2-spring-plugin-x-x-x.jar 鍒癱lasspath
2.鍦╯truts.xml鎴栬卻truts2.properties涓寚瀹歰bjectFactory
<struts>
<constant name="struts.objectFactory" value="org.apache.struts2.spring.StrutsSpringObjectFactory" />
...
</struts>
浜嬪疄涓婅繖涓楠ゅ彲浠ョ渷鐣ワ紝鍦╯truts2-spring-plugin-x-x-x.jar 鏈変竴涓猻truts-plugins.xml錛屾牸寮忎笌struts.xml鐨勬牸寮忎竴鑷達紝struts鐨勯厤緗枃浠跺姞杞介『搴忥紝鏄劇ずstruts-default.xml錛屽畾涔夊湪struts-core.jar涓傜劧鍚庡姞杞絪truts.xml錛屾渶鍚庡姞杞絪truts-plugin.xml銆?br />
3.鍦ˋction鐨勫氨鍙互浣跨敤@Autowired涔嬬被鐨凙nnotation娉ㄥ叆Bean錛屽
@Component
public class PandoraAction {
@Inject
private TestService testService;
鎺㈢┒鍏跺師鐞嗭紝鑷劧闇瑕佷粠StrutsSpringObjectFactory綾誨紑濮嬩簡銆?br />
public class StrutsSpringObjectFactory extends SpringObjectFactory implements ObjectFactoryInitializable {
private static final Log log = LogFactory.getLog(StrutsSpringObjectFactory. class );
/* (non-Javadoc)
* @see org.apache.struts2.util.ObjectFactoryInitializable#init(javax.servlet.ServletContext)
*/
public void init(ServletContext servletContext) {
log.info( " Initializing Struts-Spring integration " );
ApplicationContext appContext = WebApplicationContextUtils.getWebApplicationContext(servletContext);
if (appContext == null ) {
// uh oh! looks like the lifecycle listener wasn't installed. Let's inform the user
String message = " ********** FATAL ERROR STARTING UP SPRING-STRUTS INTEGRATION **********\n " +
" Looks like the Spring listener was not configured for your web app! \n " +
" Nothing will work until WebApplicationContextUtils returns a valid ApplicationContext.\n " +
" You might need to add the following to web.xml: \n " +
" <listener>\n " +
" <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>\n " +
" </listener> " ;
log.fatal(message);
return ;
}
this .setApplicationContext(appContext);
StrutsSpringObjectFactory緇ф壙鑷猄pringObjectFactory綾伙紝鍦ㄥ垵濮嬪寲鏃朵粠ServletContext鍙栧埌ApplicationContext銆?br />
SpringObjectFactory 緇ф壙鑷猚om.opensymphony.xwork2.ObjectFactory錛孫bjectFactory鎻愪緵Action鐨勯粯璁ゅ疄渚嬭瘽鍔熻兘銆?br />
public class SpringObjectFactory extends ObjectFactory implements ApplicationContextAware
/**
* Looks up beans using Spring's application context before falling back to
* the method defined in the {@link ObjectFactory}.
*
* @param beanName
* The name of the bean to look up in the application context
* @return A bean from Spring or the result of calling the overridden
* method.
* @throws Exception
*/
public Object buildBean(String beanName) throws Exception {
try {
return appContext.getBean(beanName);
} catch (NoSuchBeanDefinitionException e) {
Class beanClazz = getClassInstance(beanName);
return buildBean(beanClazz);
}
}
/**
* @param clazz
* @throws Exception
*/
public Object buildBean(Class clazz) throws Exception {
Object bean = null ;
try {
bean = autoWiringFactory.autowire(clazz, AutowireCapableBeanFactory.AUTOWIRE_CONSTRUCTOR, false );
} catch (UnsatisfiedDependencyException e) {
// Fall back
bean = super .buildBean(clazz);
}
bean = autoWiringFactory.applyBeanPostProcessorsBeforeInitialization(bean, bean.getClass().getName());
// We don't need to call the init-method since one won't be registered.
bean = autoWiringFactory.applyBeanPostProcessorsAfterInitialization(bean, bean.getClass().getName());
return autoWireBean(bean);
}
appContext灝辨槸鍦ㄥ垵濮嬪寲涓璼etApplicationContext娉ㄥ叆榪涘幓鐨勩?br />
閫氳繃閲嶈澆struts2涓粯璁ょ殑buildBean鏂規硶錛岄氳繃spring鐨刡ean瀹瑰櫒瀹炰緥鍖朼ction bean銆?br />
鍙傝冭祫鏂?
1.Struts涓叾瀹炰篃鏈変竴浜?/span>IOC鐨勬蹇碉紝鐪嬬湅浠栫殑 bean鐨勯厤緗細
http://struts.apache.org/2.0.14/docs/bean-configuration.html
2.struts-spring-plugin鐨勪粙緇嶏細
http://struts.apache.org/2.x/docs/spring-plugin.html
3.struts-spring-plugin鍏抽敭綾?/span> StrutsSpringObjectFactory (緇ф壙鑷?/span>SpringObjectFactory),SpringObjectFactory(緇ф壙鑷?/span>ObjectFactory )鐨勫叧閿唬鐮?/span>:
http://www.koders.com/java/fid5C3A785273DB48FACE6A555235E29EB629F18284.aspx
http://www.koders.com/java/fid8FB58F1A37336CC84161E3A655F9D4F73A36EC6F.aspx
]]>struts2涓殑mode-driven浣撻獙 http://www.tkk7.com/Hafeyang/archive/2009/05/01/model_driven_in_struts2.html闃寵 閿?/dc:creator>闃寵 閿?/author>Fri, 01 May 2009 15:29:00 GMT http://www.tkk7.com/Hafeyang/archive/2009/05/01/model_driven_in_struts2.html http://www.tkk7.com/Hafeyang/comments/268557.html http://www.tkk7.com/Hafeyang/archive/2009/05/01/model_driven_in_struts2.html#Feedback 2 http://www.tkk7.com/Hafeyang/comments/commentRss/268557.html http://www.tkk7.com/Hafeyang/services/trackbacks/268557.html 鍦ㄥ緢涔呬箣鍓嶆垜灝變綋楠?鎵璋撲綋楠岋紝灝辨槸鍐欎竴涓猟emo璺戣窇錛岀畻涓嶄笂瀛︿範)榪囦竴鎶妔truts2銆備絾鏄垜鍙戠幇铏界劧struts2鐩稿struts1.x鏈夊緢澶х殑涓嶅悓錛屼絾鏄繕鏄病鏈夎В鍐沖洶鎵版垜鐨勮繖涓棶棰樸傚氨鏄痬odel灝辯┒绔熸庝箞鍐欍傚湪涓涓猻pring-hibernate-struts鐨勫吀鍨嬮」鐩腑錛岄氬父浼氬湪Hibernate涓畾涔変竴涓猵ojo瀹炰綋綾誨仛ORM錛屼絾鏄湪struts鐨凙ction鍚屾牱瑕佸畾涔塵odel,涓嶄細鍐嶆妸閭d釜瀹炰綋綾誨啀鍐欎竴閬嶏紝鎴戣寰楀緢闅懼彈錛屾垜鐭ラ亾鍙互鍦ˋction閲岄潰澹版槑涓涓疄浣撶被錛屼絾鏄繖鏍鋒昏寰椾笉鏄緢浼橀泤錛屽洜涓哄湪鎴戠湅鏉ワ紝瀹炰綋綾繪病鏈夊緱鍒板緢濂界殑澶嶇敤錛屾垜鏇劇粡瀵箂truts2寰堝喎婕犮備絾鏄渶榪戜簡瑙e埌struts2閲岄潰鏈変竴涓狹odel-Driven,铏界劧瀵規ā鍨嬮┍鍔ㄥ紑鍙戜簡涔嬬敋灝戯紝浣嗘槸閫氳繃鑷繁鍋氱殑綆鍗曠殑浠g爜錛屾垜鍙戠幇榪欎釜涓栫晫鐪熺殑鏄己灝戝彂鐜般?
榪欎篃鏄涓嬈$敤涓婁簡maven2錛屾渶寮濮嬬敤鍒癿aven2鏄洜涓轟粬鍙互綆$悊渚濊禆(dependency),鎴戜滑鍙鍦╩aven2鐨刾om.xml 鏂囦歡涓坊鍔犱竴涓緷璧栵紝maven 灝變細鑷姩鍒扮綉涓婁笅杞絪truts鎵渚濊禆鐨勫寘騫惰緗ソclasspath銆?br />
tip:瑕佷嬌鐢╩aven2鐨別clipse鎻掍歡m2eclipse蹇呴』灝唀clipse3.4鍗囩駭鍒版渶鏂扮殑鐗堟湰錛屼笉鐒朵細琚姤閿欑殑錛寀pdate绔欑偣涓?http://m2eclipse.sonatype.org/update/
鏂板緩瀹岄」鐩箣鍚庯紝鍦ㄩ」鐩殑鍙抽敭鑿滃崟涓?maven2 -> add maven2 management銆傛暣涓」鐩殑鐩綍緇撴瀯閮戒細鏈夊彉鍖栵紝娉ㄦ剰涓ょ偣錛屾坊鍔犱簡maven2鏀寔鍚庯紝鍦╞uild path涓殑source娌℃湁浜嗭紝闇瑕佹墜鍔ㄦ坊鍔犳枃浠跺す銆傝繕鏈変竴涓棶棰樺氨鏄綘蹇呴』鍦?Order and export"涓皢maven dependencies鍕句笂,鍚﹀垯閮ㄧ講tomcat涓婇潰鐨勬椂鍊欎細鏈夊寘緙哄け銆?br />
榪涘叆姝i錛氬叾瀹瀖odel-driven鍦╯trtus涓殑鐢ㄦ硶娌℃湁浠涔堢壒鍒殑鍦版柟銆傚氨鏄湪瀹氫箟Action鐨勬椂鍊欑◢鏈変笉鍚屻?br />
1 public class UserAction extends ActionSupport implements ModelDriven {
2
3 private static final long serialVersionUID = 6863420763993646296L ;
4 private User user = new User();
5
6 public Object getModel() {
7 return user;
8 }
9
10 public String execute() {
11 if ( this .user.getAge() == 20 ) this .user.setAge( 22 );
12 return SUCCESS;
13 }
14 }
鍏跺疄鍙樺寲灝辨槸鍦ㄥ畾涔堿ction鐨勬椂鍊欏疄鐜癕odelDriven鎺ュ彛瀹炵幇getModel鏂規硶銆傛敞鎰忓湪澹版槑瀹炰綋瀵硅薄鐨勬椂鍊欓渶瑕佸疄渚嬪寲銆備絾鏄湪jsp欏甸潰涓婁篃鏄湁涓嶅悓鐨勩?br />
1 < s:form action ="UserAction" theme ="css_xhtml" >
2 < s:textfield name ="name" label ="濮撳悕" ></ s:textfield >
3 < s:textfield name ="age" label ="騫撮緞" ></ s:textfield >
4 < s:submit value ="GO" ></ s:submit >
5 </ s:form >
濡傛灉鎸夌収閫氬父鐨勫仛娉曞湪Action涓畾涔変竴涓猆ser瀵硅薄錛岄偅涔堝湪jsp欏甸潰涓婃枃鏈鐨勫睘鎬у氨搴旇鏄痷ser.name,user.age.榪欐牱鍋氭樉鐒舵洿鍔犵畝鍗曘?/p>
緇撹
浣跨敤model-driven鐨勬柟寮忚兘澶熷皢鐜版湁鐨勫疄浣撶被綆鍗曠殑澶嶇敤涓簃vc妯″瀷涓殑model,鍑忓皯浠g爜銆?br />
鐤戦棶錛氳櫧鐒惰В鍐充簡榪欎箞涓棶棰橈紝浣嗘槸鎴戣繕鏄struts鏈変簺涓嶆斁蹇冿紝灝辨槸tag鐢熸垚鐨刪tml,寰堥毦鑾峰緱dom鐨刬d灞炴э紝榪欐牱緇檍avascript鐨勪竴浜涢昏緫鎺у埗甯︽潵浜嗛夯鐑︼紝榪欎篃鏄垜瀵箂truts涓嶅お鏀懼績鐨勫湴鏂癸紝涓嶇煡閬撳ぇ瀹跺湪榪欐柟闈㈡槸鎬庝箞鍋氱殑銆?/p>
]]>
主站蜘蛛池模板:
xxxx日本在线播放免费不卡 |
国产成人无码免费视频97 |
最近中文字幕国语免费完整 |
久久WWW免费人成一看片 |
1000部啪啪未满十八勿入免费 |
午夜高清免费在线观看 |
亚洲国产成人久久笫一页 |
亚洲精品午夜无码电影网 |
亚洲Av高清一区二区三区 |
羞羞漫画在线成人漫画阅读免费 |
日韩精品无码一区二区三区免费 |
免费被黄网站在观看 |
久久精品国产精品亚洲艾 |
69av免费观看 |
亚洲av无码国产精品色午夜字幕 |
亚洲日韩久久综合中文字幕 |
免费视频一区二区 |
亚洲性在线看高清h片 |
亚洲成AV人影片在线观看 |
99久热只有精品视频免费看 |
久久久久无码专区亚洲av |
亚洲人成网站免费播放 |
波多野结衣免费在线 |
91亚洲精品第一综合不卡播放 |
一级做性色a爰片久久毛片免费 |
24小时日本在线www免费的 |
亚洲精品视频免费看 |
日韩精品无码免费一区二区三区
|
丝袜足液精子免费视频 |
亚洲日韩在线中文字幕第一页 |
亚洲av成人无码网站… |
免费看少妇作爱视频 |
亚洲欧美日韩综合久久久久 |
0588影视手机免费看片 |
亚洲第一成人在线 |
精品国产麻豆免费人成网站 |
免费大黄网站在线看 |
污污的视频在线免费观看 |
亚洲国产成人久久综合碰 |
中文字幕在线视频免费 |
亚洲小视频在线观看 |