程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> 基於struts的web應用開發總結(二)

基於struts的web應用開發總結(二)

編輯:關於JAVA

一:打開模態框時showModual()方法並沒有提供打開的窗體的title的參數,title要寫在打開的模態框的jsp頁面的<head></head>的內。

且要把<TITLE></TITLE>標簽放在<HEAD></HEAD>中的最上邊。

分析:

1 模式窗口比較特殊,所以對於title的位置比較敏感。

2 title標簽本來就應該放在<HEAD></HEAD>中的最上邊, 只不過普通的

窗口允許或者忽略了title沒有放在最上面的錯誤

二:在做開發時發現了一個問題,如下:

Cannot find bean under name org.apache.struts.taglib.html.BEAN

網絡上找的資料如下:

1。試圖在Struts的form標記外使用form的子元素。在後面使用Struts的html標記等

2。不經意使用的無主體的標記,如web 服務器解析時當作一個無主體的標記,隨後使用的標記都被認為是在這個標記之外的

3。還有就是在使用taglib引入HTML標記庫時,你使用的prefix的值不是html

4。property必須和所要提交的action對應的formbean中的某個屬性相匹配(必須有一個formbean)

5。要使用標簽,外層必須使用標簽,不能使用html的

三.關於java引用jar的問題:

1.多工程一起開發時,如果要引用另一個工程的類,可以把另一個工程打成jar包放在發布服務如jboss發布的目錄下(如jboss-4.0.5.GA\server\default\lib)下,並在工程代碼裡引另一個另一個工程,這樣,代碼就不會報找不到類的錯誤了。

2.同時,要注意如果不把工程打成jar包,也可以把工程發布的目錄放在jboss發布的目錄下,在工程裡引入這個工程的jar包就可以了。

3.當在本工程與jboss的lib目錄有重復的jar包的情況下,運行應用程序就會報錯,會的提示類找不到,所以,兩個目錄只能存在一個jar包。

四:在發送ajax請求時,如果是某個表單的數據量非常大,這時候如果用method:"get"的話,請求會發不到action端,也沒有返回結果,這時候需要把method:"get"改為method:"post"就不會了。

五:

本來想在公共的一個工程裡寫一個jsp,這個jsp裡有調用本工程的servlet裡的代碼,這時候想其它的工程都引用這個jsp,但是出現一個問題:其它工程裡認不到這個公共工程裡的jsp引入的類。目前,我的做法是每個工程都放置這個引入類。其實最好的辦法應該是把這個公共的類生成jar,放在每個工程下,或放在服務器發布的目錄下。這點與js不同,公共的js可以放在一個工程下,其它的工程去引用它就好了。

六:

要在jsp裡當某些條件符合時顯示與不顯示,有三種方式:

第一種:可以用struts裡的logic標簽,如:

<logic:equal name="JSP_USER_CODE" value="12345">...</logic:equal>

第二種:但是用logic時需要把變量放在request、session等預定變量內,如果不想這麼做,而只想根據url傳的參數來做為判斷條件的話,可以用:

jstl標簽,如:

  url = "/dep_info_frame.jsp?modual=select_users";

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>

<c:if test="${param.modual=='select_users'}">...</c:if>

第三種是用<%%>把條件的java代碼寫在jsp裡。如:

<%

 if(..){

%>

<span>show if a</show>

<%}else{%>

<span>show if b</show>

<%}%>

七:

在某個頁面上如點擊如個按鈕open出另一個jsp頁面,常常在打開的jsp裡要去訪問按鈕所在的jsp的某些元素,這裡有個概念很容易誤碼解,會用:self.parent,其實應該是self.opner。parent,child這些是用在多窗口,多框架裡的,而打開另一個窗口,並不存在子父關系,這點需要明白。

八:

在jsp常需要用到清除緩存,這點很重要也很常,可以如下代碼:

Java代碼

<%
  response.setHeader("Cache-Control", "no-store");
  response.setHeader("Pragrma", "no-cache");
  response.setDateHeader("Expires", 0);
%>

九:

對某個元素,當想點擊時觸發某個事件,且想在鼠標移過去做些樣式的變化,可以不用自己寫onmouseover,onmouseout來做樣式的控制,可以直接用<a>,在<a>的href中也可以執行js,這點可能大家比較不清楚。如下:

Js代碼

<a href='javascript:phoneListJs.showTabbarContent("+serial_num+","+cmt+");' style='color:red;'>編輯</a>

十:

從數據庫裡取出來的字段數據,很經常的值是為空的null,這時候在程序裡需要做下判斷是否為null,不能就直接拿來處理。比如我在程序中不有判斷就用了trim(),這就有異常了。如果想把null或空值轉化為默認值,可以用如下方法:

Java代碼

 public static String replaceIfMissing(String orig,String replacement) throws Exception{
 String result = "";
 try{
  if((orig==null)||(orig.trim().equals(""))){
  result = replacement;
  }else{
  result = orig;
  }
 }catch(Exception ex){
  ex.printStackTrace();
 }
 return result;
 }

十一:

寫sql語句時,對於排序,如果某個字段為空,但是也要放在排序的某個位置上,可以用nvl()方法。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved