第二章 Struts 2的應用

2.1 Struts 2的應用
    2.1.1 使用步驟
        一、建立web項目,添加jar包,建立helloWorld.jsp頁面
        二、建立HelloWorldAction類,用於對用戶的請求做出處理
            public class HelloWorld implements Action {
                //用戶輸入的姓名
                private String name = "";
                //向用戶顯示的信息
                private String message = "";
                public String getName() {
                    return name;
                }
                public void setName(String name) {
                    this.name = name;
                }
                public String getMessage() {
                    return message;
                }
                public void setMessage(String message) {
                    this.message = message;
                }
                @Override
                public String execute() throws Exception {
                    this.setMessage("Hello,"+this.getName()+"!");
                    return "success";
                }
            }

        三、修改項目配置文件web.xml,將全部請求定位到指定當的Struts 2 過濾器中
              <filter>
                <filter-name>struts2</filter-name>
                <filter-class>
                    org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
                </filter-class>
              </filter>
              <filter-mapping>
                <filter-name>struts2</filter-name>
                <url-pattern>/*</url-pattern>
              </filter-mapping>
        四、建立Struts 2配置文件
            Struts.xmll:
                <?xml version="1.0" encoding="UTF-8"?>
                <!DOCTYPE struts PUBLIC
                    "-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN"
                    "http://struts.apache.org/dtds/struts-2.1.dtd">
                <struts>
                    <constant name="struts.ui.theme" value="simple"></constant>
                    <package name="default" namespace="/" extends="struts-default">
                        <action name="helloWorld" class="cn.jbit.strutsdemo.HelloWorld">
                            <result name="success">helloWorld.jsp</result>
                        </action>
                        <action name="login" class="cn.jbit.strutsdemo.loginAction">
                            <result name="loginInfo">loginInfo.jsp</result>
                            <result name="login">login.jsp</result>
                            <result name="input">login.jsp</result>
                        </action>

                    </package>
                </struts>
        總結步驟:
            一、確認環境
                一、將Struts 2框架支持文件引入項目
                二、修改工程的web.xml文件,配置過濾器            
            二、代碼編寫
                一、編寫開發處理求求的Action類,實現處理請求的方法,返回一個字符串類型的結果
                二、編寫Struts.xml文件,對Action進行配置
                三、編寫與Action相關的JSP頁面
2.2 Struts 2訪問servletAPI對象
    一、使用ActionContex類獲取ServletPAI對應的Map對象
        request:ActionContext ac=ActionContext.getContext();
                 Map request=(Map)ac.get("request");
        session: ActionContext ac=ActionContext.getContext();
                 Map session=(Map)ac.get("session");
        application:ActionContext ac=ActionContext.getContext();
                 Map application=(Map)ac.get("application");      
    二、Struts 2 向Action注入ServletAPI對象對應的Map對象
        org.apache.struts2.interceptor.RequestAware:向Action實例注入HttpServletRequest對象對應的Map對象
            public void setRequest(Map<String,Object>request);
            
        org.apache.struts2.interceptor.SessionAware:向Action實例注入HttpSession對象對應的Map對象
            public void setSession(Map<String,Object>Session);
            
        org.apache.struts2.interceptor.ApplicationAware:向Action實例注入ServletContext對象對應的Map對象
            public void setApplication(Map<String,Object>Application);
    與Servlet API耦合的訪問方式
        使用ServletActionContext類獲取ServletAPI對象
        
            HttpServletRequest  =  public static HttpServletRequest getRequest();
                  
            ServletCOntext  =  public static ServletContext getServletContext();      
                  
            HttpServletResponse  =  public static HttpServletResponse getResponse();      
                  
            使用HttpServletRequest能夠得到HttpSession對象
        除了使用ServletActionContext獲取ServletAPI對象,還能夠實現特定的接口實現注入Action實例注入ServletAPI對象
            ServletContext   :void setServletCOntext(ServletCOntext context);
            
            HttpServletRequest   :void serServletRequest(HttpServletRequest request);
            
            HttpServletResponse   :void setServletResponse(HttpServletResponse response);  
2.3 Struts 2數據校驗
        經過繼承ActionSupport類實現數據驗證機制
        例:    public void validate(){
                    if(this.getUsername().length()==0||"".equals(this.getUsername())){
                        addFieldError("name", "用戶名不能爲空");
                    }
                    if(this.getPassword().length()==0||"".equals(this.getPassword())){
                        addFieldError("pwd", "密碼不能爲空");
                    }
                }
2.4 Struts 2標籤
    UI標籤
        表單標籤:
            <s:form></s:form>:獲取相應form的值
            <s:textfied></s:textfied>:文本輸入框
            <s:password></password>:密碼輸入框
            <s:textarea></textarea>:文本域輸入框
            <s:radio></s:radio>:單選按鈕
            <s:checkbox></s:checkbox>:複選框
            <s:submit/>:提交標籤
            <s:reset/>:重置標籤
            <s:hidden/>:隱藏域標籤
            例:<s:form action="login.action">
                    <div>用戶名:<s:textfield name="username"/></div>
                    <div>密碼:<s:password name="password"/><br></div>
                    <div><s:submit value="提交"/></div>
                </s:form>
                <font color="red"><s:property value="text"/><s:fielderror/></font>
                
        非表單標籤
        Ajax標籤
    通用標籤
          條件標籤:
          <s:if>
            需執行的代碼
          </s:if>
          <s:elseif>
            需執行的代碼
          </s:elseif>
          <s:else>
            需執行的代碼
          </s:else>
          迭代標籤:<s:iterator value="集合對象" status="status" id="name">
                        讀取集合對象並輸出顯示
                    </s:iterator>
             web

相關文章
相關標籤/搜索