Struts编程心得
生活随笔
收集整理的這篇文章主要介紹了
Struts编程心得
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
前期閱讀了Struts的UserGuide和相關的一些文檔,開始動手做Struts的開發
例子很簡單,就是做一個登錄的過程,參考了文檔和Struts的一些Example的代碼,總結了以下幾點:
1、能用struts的標簽的HTML代碼最好都用struts的標簽來代替。因為struts的標簽一般都提供將相對路徑轉換為絕對URL的功能,這樣可以保證css,圖片等資源被100%找到
2、 <html:base/>標簽最好用上,因為這樣做了之后,就可以保證在一些無法用struts標簽代替的HTML代碼中的資源路徑的引用是 正確的。如<link ...>這樣的HTML,還有<td background="...>這樣的HTML代碼
3、 struts自帶了common-logging,可以使用log4j,jdk的logging還有自身的simple-logging,推薦使用 log4j!具體的做法是這樣,首先將log4j的jar包放到WEB-INF/lib下,這樣,struts就可以找到log4j了;然后,在WEB- INF/class目錄下建立一個文件log4j.properties,在里面寫上配置,這樣,log4j就可以工作了!至于在代碼中如何調用,請看 struts文檔閱讀摘要。log4j的配置請看剛發的“log4j官方sample配置”一帖!4、如果要使用Validator,還要使用DynaActionForm,那么要保證如下一些事情:
(1)在struts-confg.xml中配置validator的Plug-In
(2)在validator.xml中配置validate的規則
(3)在struts-config.xml中配置form-bean,typeclass必須是DynaValidatorForm
(4)在struts-config.xml中配置這個action時,必須要配置input屬性,這樣DynaValidatorForm才可以在validator失敗的時候正確返回到輸入頁面
注:這里DynaValidatorForm還有一個繼承類,是DynaValidatorActionForm,這兩個類,根據源碼里面的注釋,有這樣的區別(目前還不是很理解):
DynaValidatorForm:
* <p>This class extends <strong>DynaActionForm</strong> and provides
* basic field validation based on an XML file. The key passed into the
* validator is the action element's 'name' attribute from the
* struts-config.xml which should match the form element's name attribute
* in the validation.xml.</p>
DynaValidatorActionForm:
* <p>This class extends <strong>DynaValidatorForm</strong> and provides
* basic field validation based on an XML file. The key passed into the
* validator is the action element's 'path' attribute from the
* struts-config.xml which should match the form element's name attribute
* in the validation.xml.</p>
1、在<html:form 標簽里添加 οnsubmit="return validateLoginForm(this);"
2、在JSP頁面里添加
<html:javascript formName="LoginForm" dynamicJavascript="true" staticJavascript="false"/>
<script language="Javascript1.1" src="staticJavascript.jsp"></script>
6、一般來說,在PlugIn里初始化后,可以將數據放在application對象中,其實也就是servlet context中。代碼如下:
servlet.getServletContext().setAttribute(Constants.DATASOURCE_KEY, ds);
這樣,以后在JSP中,就可以直接調用application.getAttribute方法來獲得對象
在servlet中,就可以調用this.getServlet().getServletContext().getAttribute來獲得對象
<font color=red>
這是非常討厭的情況,因為我們有的時候會在JavaBean里面寫上一些HTML代碼,希望將來在JSP中直接可以顯示出來。所以,如果在JavaBean里有這樣的HTML代碼,記得在客戶端輸出的時候把filter置成false?
例子很簡單,就是做一個登錄的過程,參考了文檔和Struts的一些Example的代碼,總結了以下幾點:
1、能用struts的標簽的HTML代碼最好都用struts的標簽來代替。因為struts的標簽一般都提供將相對路徑轉換為絕對URL的功能,這樣可以保證css,圖片等資源被100%找到
2、 <html:base/>標簽最好用上,因為這樣做了之后,就可以保證在一些無法用struts標簽代替的HTML代碼中的資源路徑的引用是 正確的。如<link ...>這樣的HTML,還有<td background="...>這樣的HTML代碼
3、 struts自帶了common-logging,可以使用log4j,jdk的logging還有自身的simple-logging,推薦使用 log4j!具體的做法是這樣,首先將log4j的jar包放到WEB-INF/lib下,這樣,struts就可以找到log4j了;然后,在WEB- INF/class目錄下建立一個文件log4j.properties,在里面寫上配置,這樣,log4j就可以工作了!至于在代碼中如何調用,請看 struts文檔閱讀摘要。log4j的配置請看剛發的“log4j官方sample配置”一帖!4、如果要使用Validator,還要使用DynaActionForm,那么要保證如下一些事情:
(1)在struts-confg.xml中配置validator的Plug-In
(2)在validator.xml中配置validate的規則
(3)在struts-config.xml中配置form-bean,typeclass必須是DynaValidatorForm
(4)在struts-config.xml中配置這個action時,必須要配置input屬性,這樣DynaValidatorForm才可以在validator失敗的時候正確返回到輸入頁面
注:這里DynaValidatorForm還有一個繼承類,是DynaValidatorActionForm,這兩個類,根據源碼里面的注釋,有這樣的區別(目前還不是很理解):
DynaValidatorForm:
* <p>This class extends <strong>DynaActionForm</strong> and provides
* basic field validation based on an XML file. The key passed into the
* validator is the action element's 'name' attribute from the
* struts-config.xml which should match the form element's name attribute
* in the validation.xml.</p>
DynaValidatorActionForm:
* <p>This class extends <strong>DynaValidatorForm</strong> and provides
* basic field validation based on an XML file. The key passed into the
* validator is the action element's 'path' attribute from the
* struts-config.xml which should match the form element's name attribute
* in the validation.xml.</p>
1、在<html:form 標簽里添加 οnsubmit="return validateLoginForm(this);"
2、在JSP頁面里添加
<html:javascript formName="LoginForm" dynamicJavascript="true" staticJavascript="false"/>
<script language="Javascript1.1" src="staticJavascript.jsp"></script>
?
5、我們可以通過書寫PlugIn的方式,讓我們的應用在啟動的時候就執行一些代碼,通常這些代碼都是初始化用的。書寫完成后需要在struts-config.xml中書寫PlugIn的配置,然后就OK了。具體的實現代碼和配置可以看EasyCluster的代碼。6、一般來說,在PlugIn里初始化后,可以將數據放在application對象中,其實也就是servlet context中。代碼如下:
servlet.getServletContext().setAttribute(Constants.DATASOURCE_KEY, ds);
這樣,以后在JSP中,就可以直接調用application.getAttribute方法來獲得對象
在servlet中,就可以調用this.getServlet().getServletContext().getAttribute來獲得對象
?
7、bean:write 這個標簽中有一個屬性叫做filter,默認值是true。如果這個filter被置為true的話,那么,Struts將會自動對bean:write的輸出做HTML的解析,如把<font color=red>變成<font color=red>
這是非常討厭的情況,因為我們有的時候會在JavaBean里面寫上一些HTML代碼,希望將來在JSP中直接可以顯示出來。所以,如果在JavaBean里有這樣的HTML代碼,記得在客戶端輸出的時候把filter置成false?
轉載于:https://www.cnblogs.com/super119/archive/2011/03/19/1988606.html
總結
以上是生活随笔為你收集整理的Struts编程心得的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 取得前九条之后的数据
- 下一篇: oracle创建分区表