struts學習

abcbbc發表於2007-05-07

Struts是三個框架中最容易懂的。
Struts的重要是Struts_config.xml中的八大元素,你可以把重點放在這裡。
其次Struts中的標籤重點掌握:html標籤,bean標籤,和logic標籤即可,這樣完全就可以用Struts開發出web應用程式了。
至於nested標籤不算重要,也不常用(它和Struts的連帶關係不是很強,用標準標籤庫遠比它要好)。
Struts中的html標籤,和普通的html標籤類似,一般有web基礎的人掌握起來都非常快。為什麼用這個標籤的原因是由於Struts的提交表單action方式和這個標籤裡的是捆綁在一起的,必用。
bean標籤是為了表單中的form準備的,modu2中的VO在Struts中可用form來配合表單提交,資訊儲存,資訊顯示。
logic標籤是用於遍歷從action中返回的list集合(用起來很方便)。不用在頁面寫那些之類的Java語句。

另外struts有三個東西
1.標籤 用struts標籤可以很簡單的實現jsp上的一些功能
2.ActionForm 不用多說了 按照格式寫一個就行了
3.Action 也是按照格式寫就行了,然後呼叫你自己寫的業務Bean

[@more@]

  該案例包括首頁,使用者登陸、網站嚮導頁面。就這麼簡單,沒有深奧的struts概念,主要靠動手,然後用心體會。

  WEB Server用tomcat4。到 下載struts1.1,把zip檔案釋放到c:struts,複製C:strutswebappsstruts-example.war到c:tomcat4webapps中,啟動tomcat,war包被釋放為struts-example資料夾,刪除war包,把struts-example資料夾更名為test。
   一、把WEB-INFweb.xml改成:




action
org.apache.struts.action.ActionServlet

config
/WEB-INF/struts-config.xml

1

<!--該系統的servlet可以對映成cool為字尾的檔案,而不是常見的.jspdo等,字尾名可以改成任何名稱,當然名字要健康#◎¥%!--&gt

action
*.cool

<!--該系統的預設首頁是index.jsp,可以有多個,系統按次序找,類似IIS--&gt

index.jsp

  二、把testWEB-INF struts-config.xml改成:


br />" ">


<!--FormBean是struts的一個概念,本質是JavaBean,用來自動儲存頁面表單中各個域的值,並在適當的時候回填表單域,不需要象傳統那樣request.getParameter(“fieldName”);,常被action-mappings中的action 使用--&gt



<!--這裡存放整個系統都可以使用的全域性轉向中轉(Forward)地址,類似於javascript中的window.location(‘index.jsp');,也類似於電視控制器上的各種按鈕,可以轉頻道、調色等等是基於Struts的Web應用的控制流程流轉。一般情況下,一個Action處理完畢後,會轉發到一個JSP頁面進行顯示。這也是JSP中的MVC的實現的要點。--&gt

<!--failed.cool將被當成servlet請求,到action-mappings中尋找對應的action處理。--&gt



<!--還記得web.xml中字尾為cool的請求嗎?它們是轉到這裡處理的。這裡相當於struts的Model部分,Model部分是struts中比較靈活的地方。--&gt

<!--處理regist.cools的請求,使用的FormBean是userForm,既test.UserForm類,當處理過程發生錯誤時將返回index.jsp--&gt





   三、增加一個FormBean,類路徑為test.UserForm,以下是這個類的內容:

package test;
import org.apache.struts.action.ActionForm;
public class UserForm extends ActionForm
{
  private String name="lpw";//使用者名稱
  private String ps="1111";//密碼
  public UserForm(){}
  public void setName(String s) {name=s;}
  public String getName() {return name;}
  public void setPs(String s) {ps=s;}
  public String getPs() {return ps;}
}


   四、增加一個Action的子類,類路徑為test. RegistAction,以下是這個類的內容:

package test;
import java.lang.reflect.InvocationTargetException;
import java.util.Locale;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionError;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.util.MessageResources;
import test.UserForm;
public final class RegistAction extends Action
{
  public ActionForward execute(ActionMapping mapping,ActionForm form, HttpServletRequest request, HttpServletResponse response)
  throws Exception
  {
   Locale locale = getLocale(request);
   MessageResources messages = getResources(request);
   HttpSession session = request.getSession();
   UserForm userform = (UserForm) form;
   //此處可以呼叫其他類來執行資料庫寫入或其他邏輯判斷
   // 如果UserForm傳來的引數name的值為預設的lpw,將forward到failed,
   // 該名稱將到struts-config.xml的中尋找對映的url地址
   // (可以是絕對路徑,也可以是相對路徑),對於本例,是轉到failed.cool,
   // 還記得嗎?字尾為cool的請求全部到action-mappings中尋找
   // 對應的action處理,最終目錄是wuwu.jsp*/
   if( "lpw".equals(userform.getName()) )
    return (mapping.findForward("failed"));
   else
    return (mapping.findForward("regist"));
  }
}

  五、以下所有新增或修改的頁面相當於struts的View部分,把首頁index.jsp改成:



站點導航


使用者:

密碼:


  六、增加hello.jsp,用於站點導航:

site map

The following is content filling by reader

  七、增加wuwu.jsp,當沒有新使用者登陸時,將轉到這個頁面:



現有使用者:

密碼:

  沒有得到新的使用者!

  八、增加regist.jsp,當有新使用者登陸時,將轉到這個頁面:



新使用者帳號:

密碼:

  九、啟動tomcat4,瀏覽器中鍵入 ,操作一下

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/219138/viewspace-913889/,如需轉載,請註明出處,否則將追究法律責任。

相關文章