日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

Struts2之路第一天

發(fā)布時(shí)間:2024/4/14 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Struts2之路第一天 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

打個(gè)廣告java1234資源分享

1.Struts2的核心是將請(qǐng)求與視圖分開(kāi),只需要改配置文件就可以改變視圖。

2.jsp文件報(bào)錯(cuò):Can not find the tag library descriptor for "/struts-tags"。

<!-- <%@ taglib prefix="c" uri="/struts-tags" %>會(huì)報(bào)錯(cuò),錯(cuò)誤提示為: Can not find
the tag library descriptor for "/struts-tags" struts-core-xxx.jar包不是struts2的需要在web中配置:
-->

1 <jsp-config> 2 <taglib> 3 <taglib-uri>/struts-tags</taglib-uri> 4 <taglib-location>/WEB-INF/lib/struts2-core-2.1.6.jar</taglib-location> 5 </taglib> 6 </jsp-config>

我之后又啟動(dòng)服務(wù)器時(shí),報(bào)錯(cuò)org xml sax saxparseexception前言中不允許有內(nèi)容,當(dāng)我把加進(jìn)去的這段代碼刪了之后,兩個(gè)錯(cuò)誤都沒(méi)了。

3.修改默認(rèn)編碼 Preferences->搜索jsp->JSP Files 將Encoding改為 ISO 10646/Unicode(UTF-8),IANA就會(huì)變?yōu)閁TF-8.

4.Struts1里面action對(duì)象只有一個(gè),Struts2里面每次訪問(wèn)都會(huì)創(chuàng)建一個(gè)對(duì)象

5.路徑問(wèn)題,當(dāng)在struts.xml里面沒(méi)有找到對(duì)應(yīng)的namespace時(shí),會(huì)返回到web.xml,找到welcome file,將默認(rèn)的歡迎界面返回到客戶端。struts2中的路徑問(wèn)題是根據(jù)action的路徑而不是jsp路徑來(lái)確定,所以盡量不要使用相對(duì)路徑。可以在jsp頁(yè)面如加入

<% String Path = request,getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %>

再在head標(biāo)簽中加入

<base href="<%=basePath%>"/> 

這樣,該文檔中所有href鏈接前面均加上了http://站點(diǎn)名:端口號(hào)/項(xiàng)目名/,如http://localhost:8080/Struts2_0100/

6.Action 執(zhí)行的時(shí)候不一定要執(zhí)行execute方法。可以使用動(dòng)態(tài)方法調(diào)用DMI,有兩種方式

 ? a.通過(guò)配置文件struts.xml中action的method屬性指定調(diào)用方法,如:
???????? <action?? method="調(diào)用方法名">;
???? b.在URL中動(dòng)態(tài)指定調(diào)用方法,使用感嘆號(hào)“!”將action名和調(diào)用方法名分割開(kāi),如:
???????? http://localhost:8080/Struts2_DMI/user!add
7.通配符*

<package name="actions" extends="struts-default" namespace="/actions"><action name="Student*" class="com.bjsxt.struts2.action.StudentAction" method="{1}"><result>/Student{1}_success.jsp</result></action><action name="*_*" class="com.bjsxt.struts2.action.{1}Action" method="{2}"><result>/{1}_{2}_success.jsp</result><!-- {0}_success.jsp --></action></package>

通配符*表示所有,{1}表示第一個(gè)*代表的字符串,{2}表示第二個(gè)*代表的字符串。如果使用通配符*,要先約定好命名規(guī)則,“約定優(yōu)于配置” 。 

8.jdk1.5和jdk1.6的區(qū)別在jdk1.5中,如果實(shí)現(xiàn)的是一個(gè)接口,就不能寫(xiě)@override,在jdk1.6中可以寫(xiě)。設(shè)置jdk,proporties --> Java Compiler:在Compiler compliance lever中選擇合適的jdk版本,注意Tomcat里面也弄成一樣的。

9.用Action 的屬性接收參數(shù),Action里面的成員變量和URL地址里面的參數(shù)可以是一一對(duì)應(yīng)的。Struts2會(huì)自動(dòng)調(diào)用方法把參數(shù)值傳遞到成員變量里,所以getter方法名要與變量名一致。

10.DomainModel接收參數(shù)。DomainModel是域模型,是真正存在的實(shí)體概念。執(zhí)行action時(shí)會(huì)自動(dòng)生成DomainModel對(duì)象,接收參數(shù)。當(dāng)參數(shù)個(gè)數(shù)與DomainModel對(duì)象的屬性不一致時(shí),我們可以創(chuàng)建VO。action執(zhí)行時(shí),參數(shù)會(huì)先與VO對(duì)象匹配,然后可以用new DomainModel(VO),將VO整體的交到DoainModel里面.

11.使用ModelDriver接收參數(shù),實(shí)現(xiàn)ModelDriver接口,調(diào)用getModel方法,返回一個(gè)DomainModel實(shí)體對(duì)象

12.剛剛新建一個(gè)struts2的項(xiàng)目時(shí),用的是2.3.15的版本,只導(dǎo)入七個(gè)jar包時(shí)報(bào)錯(cuò)java.lang.RuntimeException: java.lang.reflect.InvocationTargetException和java.lang.NoClassDefFoundError:org/apache/commons/lang/StringUtils這是因?yàn)槿鄙賑ommons-lang3-3.1.jar和javassist-3.11.0.GA.jar這兩個(gè)jar包造成的。

轉(zhuǎn)載于:https://www.cnblogs.com/ligui989/p/3170053.html

總結(jié)

以上是生活随笔為你收集整理的Struts2之路第一天的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。