隨筆-29  評論-5  文章-0  trackbacks-0
           
          一般添加在tomcat
          x:\apache-tomcat-5.5.25\conf\server.xml
          host標簽內:
          <Context path="url-a" docBase="url-b" debug="0"/>
          這一個虛擬路徑配置,path相當于http://localhost:8080/url-a
          docBase是真實的開發目錄
          debug表示是否調試
          posted @ 2010-05-27 10:06 豪情 閱讀(176) | 評論 (0)編輯 收藏
          ActionContext context = ActionContext.getContext();
          Map request 
          = (Map)context.get("request");
          Map session 
          = context.getSession();
          Map application 
          = context.getApplication();
          request.put(
          "s", str);
          request.put(
          "map", map);
          request.put(
          "greeting""歡迎訪問jikey的Blog");

          Struts 2深入詳解

          posted @ 2010-05-24 23:33 豪情 閱讀(172) | 評論 (0)編輯 收藏
          1.設置整個項目使用el表達式,需要在web.xml中加上 (控制一個項目)
          < jsp-config >
          < jsp-property-group >
          < el-ignored >false < / el-ignored >
          < /jsp-property-group >
          < / jsp-config >

          2.設置某個jsp頁面使用el表達式,需要在jsp頁面加上(控制單個頁面)
          <%@ page isELIgnored="false"%>

          3.看你的web.xml文件中頭的引用應該是 2.4.xsd

          ${requestScope.hello}
          sdf
          將JSP頁面中的<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c"%>改為<%@ taglib uri=http://java.sun.com/jstl/core_rt prefix="c"%>即可。

          發現一個el表達式在JSP2.0中不起作用的問題。反復調試多次,發現是web.xml中出了問題。猜測是版本的問題,但只知道了如何修改,不知道為什么那樣修改。

          web.xml

          <?xml version="1.0" encoding="ISO-8859-1"?>

          <web-app xmlns="http://java.sun.com/xml/ns/j2ee"
              xmlns:xsi
          ="http://www.w3.org/2001/XMLSchema-instance"
              xsi:schemaLocation
          ="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
              version
          ="2.4">
          2.4版本默認啟用el表達式,如果使用2.5版本,默認el表達式是關閉的

          <?xml version="1.0" encoding="UTF-8"?>
          <web-app xmlns="http://java.sun.com/xml/ns/javaee" 
              xmlns:xsi
          ="http://www.w3.org/2001/XMLSchema-instance" version="2.5" 
              xsi:schemaLocation
          ="http://java.sun.com/xml/ns/javaee   
              http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
          >
          那么對應2.5的web.xml -->  jsp頁面里應該增加
          <%@ page isELIgnored="false"%>

          發現原因:一句話,凡是部署描述文件遵循Servlet2.4規范的WEB應用,EL表達式的計算默認是啟用的,而未遵循的,則EL表達式的計算默認是禁用的。

          所以解決方案還可以是:將web.xml中的DTD(文檔類型定義)改問2.4的版本


          posted @ 2010-05-24 15:31 豪情 閱讀(1580) | 評論 (0)編輯 收藏
          來自于:http://shaxianwei.javaeye.com/blog/650902
          <span style="color: rgb(0, 128, 0);"><li>property: <s:property value="username"/> </li>
          <li>property 取值為字符串: <s:property value="'username'"/> </li>
          <li>property 設定默認值: <s:property value="admin" default="管理員"/> </li>
          <li>property 設定HTML: <s:property value="'<hr/>'" escape="false"/> </li>
          <hr />
          <li>set 設定adminName值(默認為 request 和 ActionContext): <s:set var="adminName" value="username"
          /></li>

          <li>set 從request取值: <s:property value="#request.adminName" /></li>
          <li>set 從ActionContext取值: <s:property value="#adminName" /></li>

          <%--<li>set 設定范圍: <s:set name="adminPassword" value="password" scope="page"/></li>
          <li>set 從相應范圍取值: <%=pageContext.getAttribute("adminPassword"%></li>
          --%>
          <li>set 設定var,范圍為ActionContext: <s:set var="adminPassword" value="password"
          scope
          ="session"/></li>
          <li>set 使用#取值: <s:property value="#adminPassword"/> </li>
          <li>set 從相應范圍取值: <s:property value="#session.adminPassword"/> </li>

          <hr />

          <%--<li>push:<s:set name="myDog" value="new com.bjsxt.struts2.ognl.Dog('oudy')"></s:set></li>
          <li>
          push:
          <s:push value="#myDog">
              
          <s:property value="name"/>
          </s:push>
          </li>
          <li>push: <s:property value="name"/></li>
          --%>

          <hr />
          <li>bean 定義bean,并使用 param來設定新的屬性值:
              
          <s:bean name="com.bjsxt.struts2.tags.Dog" >
                  
          <s:param name="name" value="'pp'"></s:param>
                  
          <s:property value="name"/>
                 
              
          </s:bean>
             
             
          </li>

          <li>bean 查看debug情況:
              
          <s:bean name="com.bjsxt.struts2.tags.Dog" var="myDog">
                  
          <s:param name="name" value="'oudy'"></s:param>
              
          </s:bean>
              拿出值:
              
          <s:property value="#myDog.name"/>
             
          </li>
          <hr />

          <li>include _include1.html 包含靜態英文文件
              
          <s:include value="/_include1.html"></s:include>
          </li>

          <li>include _include2.html 包含靜態中文文件
              
          <s:include value="/_include2.html"></s:include>
          </li>

          <li>include _include1.html 包含靜態英文文件,說明%用法
              
          <s:set var="incPage" value="%{'/_include1.html'}" />
              
          <s:include value="%{#incPage}"></s:include>
          </li>


          <hr />

          <li>if elseif else:
              age = 
          <s:property value="#parameters.age[0]" /> <br />
              
          <s:set var="age" value="#parameters.age[0]" />
              
          <s:if test="#age < 0">wrong age!</s:if>
              
          <s:elseif test="#parameters.age[0] < 20">too young!</s:elseif>
              
          <s:else>yeah!</s:else><br />
              
          <s:if test="#parameters.aaa == null">null</s:if>
          </li>

          <hr />

          <li>遍歷集合:<br />
          <s:iterator value="{1, 2, 3}" >
              
          <s:property/> |
          </s:iterator>
          </li>
          <li>自定義變量:<br />
          <s:iterator value="{'aaa', 'bbb', 'ccc'}" var="x">
              
          <s:property value="#x.toUpperCase()"/> |
          </s:iterator>
          </li>
          <li>使用status:<br />
          <s:iterator value="{'aaa', 'bbb', 'ccc'}" status="status">
              
          <s:property/> |
              遍歷過的元素總數:
          <s:property value="#status.count"/> |
              遍歷過的元素索引:
          <s:property value="#status.index"/> |
              當前是偶數?:
          <s:property value="#status.even"/> |
              當前是奇數?:
          <s:property value="#status.odd"/> |
              是第一個元素嗎?:
          <s:property value="#status.first"/> |
              是最后一個元素嗎?:
          <s:property value="#status.last"/>
              
          <br />
          </s:iterator>

          </li>

          <li>
          <s:iterator value="#{1:'a', 2:'b', 3:'c'}" >
              
          <s:property value="key"/> | <s:property value="value"/> <br />
          </s:iterator>
          </li>

          <li>
          <s:iterator value="#{1:'a', 2:'b', 3:'c'}" var="x">
              
          <s:property value="#x.key"/> | <s:property value="#x.value"/> <br />
          </s:iterator>
          </li>

          <li>

          <s:fielderror fieldName="fielderror.test" theme="simple"></s:fielderror>

          </li></span>

          posted @ 2010-05-21 23:51 豪情 閱讀(277) | 評論 (0)編輯 收藏
          來自于:http://www.aygfsteel.com/michaellee/archive/2009/07/14/286733.html
          struts2的s:iterator 可以遍歷 數據棧里面的任何數組,集合等等 以下幾個簡單的demo:
          s:iterator 標簽有3個屬性:
              value:被迭代的集合
              id   :指定集合里面的元素的id
              status 迭代元素的索引

          1:jsp頁面定義元素寫法 數組或list

             1. 
          <s:iterator value="{'1','2','3','4','5'}" id='number'>
             2.     
          <s:property value='number'/>A
             3. 
          </s:iterator>

          打印結果為:  1A2A3A4A5A
          上面的方法我在jsp文件里執行沒有成功;這是另一種寫法:
          <%
                List list 
          = new ArrayList();
                list.add(
          "Max");
                list.add(
          "Michael");
                list.add(
          "Scott");
                list.add(
          "Jeffry");
                list.add(
          "Joe");
                request.setAttribute(
          "names", list);
             
          %>

          <h3>Names:</h3>
            
          <!--
                      1、此處的空property 元素用于獲得當前iterator的值
                      2、status被設成stuts,在 iterator的里面就可以通過#stuts取得 IteratorStatus的對象。IteratorStatus類包含當前序號信息,
                                                  如是否第一個或最后一個,是否為奇數序號。這些信息在我們做格式化的時候,顯得非常有用。
             
          -->
              
          <ol>
                  
          <s:iterator value="#request.names" status="stuts">
                      
          <s:if test="#stuts.odd == true">
                          
          <li>White <s:property/></li>
                      
          </s:if>
                      
          <s:else>
                          
          <li style="background-color:blue"><s:property/></li>
                      
          </s:else>
                  
          </s:iterator>
              
          </ol>

          2: 索引的用法
          如果指定了status,每次的迭代數據都有IteratorStatus的實例,它有以下幾個方法
          int getCount()返回當前迭代了幾個元素
          int getIndex()返回當前元素索引
          boolean isEven()當然的索引是否偶數
          boolean isFirst()當前是否第一個元素
          boolean isLast()
          boolean isOdd() 當前元素索引是否奇數

             1. 
          <s:iterator value="{'a','b','c'}" id='char' status='st'>
             2.     
          <s:if test="#st.Even">
             3.         現在的索引是奇數為:
          <s:property value='#st.index'/>
             4.     
          </s:if>
             5.     當前元素值:
          <s:property value='char'/>
             6. 
          </s:iterator>

          3:遍歷map
          value可以直接定義為:

             1. value="#{"1":"a","2":"b"}"

          每個元素以都好隔開。元素之間的key和value 冒號隔開
          value 也可以是數據棧里面的java.util.Map對象
          遍歷寫法如下:

             1. 
          <s:iterator value="map" id="id" status="st">
             2.      key : 
          <s:property value='key'/>
             3.      value:
          <s:property vlaue='value'/>
             4. 
          </s:iterator>

          當然key 和value 都可以使java 的 Object

          3:遍歷數據棧.簡單的List類,
          List
          <Attr> 
          class Attr{String attrName;String getAttrName(){return "123";}}

             1. 
          <s:iterator value="label" id="id">
             2.     
          <s:property value="#id.attrName" />
             3. 
          </s:iterator>

          當然 value 還可以寫成 value="%{label}" label 可以有.操作
          label的屬性List 可以寫成value="%{label.list}"  相當于:getLabel().getList();

          4:遍歷2個list;
          List
          <AttrName> attrN {color,size,style}
          List
          <AttrValue> attrV {red,20,gay}
          這2個 list的元素是一一對應的,一個attrN對應一個attrV

             1. 
          <s:iterator value="%{attrN }" id="id"   status="status">
             2.  index    is : 
          <s:property value='status.index'/>
             3.  attrName is : 
          <s:property value='id'/> or <s:property value='%{id}'/> 
             4.  attrName is : 
          <s:property value='%{attrV[#status.index]}'/>
             5. 
          </s:iterator>

          posted @ 2010-05-21 23:49 豪情 閱讀(858) | 評論 (0)編輯 收藏
          <filter-mapping>
              
          <filter-name>struts2</filter-name>
              
          <url-pattern>*.jsp</url-pattern>
          </filter-mapping>
             
          posted @ 2010-05-21 23:47 豪情 閱讀(1184) | 評論 (1)編輯 收藏
          <package name="tutorial" extends="struts-default">
                  
          <action name="HelloWorld" class="tutorial.HelloWorld">
                      
          <result>HelloWorld.jsp</result>
                  
          </action>
              
          </package>
          1、包名:tutorial;
          2、該包繼承了父包“struts- default”;
          3、該包有一個Action類:tutorial.HelloWorld,其名稱為“HelloWorld”,其轉向的視圖為:HelloWorld.jsp
          posted @ 2010-05-21 23:43 豪情 閱讀(198) | 評論 (0)編輯 收藏
          <!-- 指定Web應用的默認編碼集,相當于調用 HttpServletRequest的 setCharacterEncoding方法 -->  
          <constant name="struts.i18n.encoding" value="UTF-8" />  
          <!--   
          該屬性指定需要Struts 2處理的請求后綴,該屬性的默認值是action,即所有匹配*.action的請求都由Struts 2處理。  
          如果用戶需要指定多個請求后綴,則多個后綴之間以英文逗號(,)隔開。  
           
          -->  
          <constant name="struts.action.extension" value="do" />  
          <!-- 設置瀏覽器是否緩存靜態內容,默認值為true(生產環境下使用),開發階段最好關閉 -->  
          <constant name="struts.serve.static.browserCache " value="false" />  
          <!-- 當 struts的配置文件修改后,系統是否自動重新加載該文件,默認值為false(生產環境下使用),開發階段最好打開 -->  
          <constant name="struts.configuration.xml.reload" value="true" />  
          <!-- 開發模式下使用,這樣可以打印出更詳細的錯誤信息 -->  
          <constant name="struts.devMode" value="true" />  
          <!-- 默認的視圖主題 -->  
          <constant name="struts.ui.theme" value="simple" />  
          <!-- 該屬性指定Struts 2中的action由Spring容器創建  -->  
          <constant name="struts.objectFactory" value="spring" /> 

          來自于:http://wing123.javaeye.com/blog/352596

          posted @ 2010-05-21 23:35 豪情 閱讀(315) | 評論 (0)編輯 收藏

          來自于:http://shaxianwei.javaeye.com/blog/650902

          <span style="color: rgb(0, 128, 0);"><li>property: <s:property value="username"/> </li>
                  
          <li>property 取值為字符串: <s:property value="'username'"/> </li>
                  
          <li>property 設定默認值: <s:property value="admin" default="管理員"/> </li>
                  
          <li>property 設定HTML: <s:property value="'<hr/>'" escape="false"/> </li>
                  
          <hr />
                  
          <li>set 設定adminName值(默認為request 和 ActionContext): <s:set var="adminName" value="username"
          /></li>
                 
                  
          <li>set 從request取值: <s:property value="#request.adminName" /></li>
                  
          <li>set 從ActionContext取值: <s:property value="#adminName" /></li>
                 
                  
          <%--<li>set 設定范圍: <s:set name="adminPassword" value="password" scope="page"/></li>
                  
          <li>set 從相應范圍取值: <%=pageContext.getAttribute("adminPassword"%></li>
                  
          --%>
                  
          <li>set 設定var,范圍為ActionContext: <s:set var="adminPassword" value="password"
          scope
          ="session"/></li>
                  
          <li>set 使用#取值: <s:property value="#adminPassword"/> </li>
                  
          <li>set 從相應范圍取值: <s:property value="#session.adminPassword"/> </li>
                 
                  
          <hr />
                 
                  
          <%--<li>push:<s:set name="myDog" value="new com.bjsxt.struts2.ognl.Dog('oudy')"></s:set></li>
                  
          <li>
                  push:
          <s:push value="#myDog">
                      
          <s:property value="name"/>
                  
          </s:push>
                  
          </li>
                  
          <li>push: <s:property value="name"/></li>
                  
          --%>
                 
                  
          <hr />
                  
          <li>bean 定義bean,并使用param來設定新的屬性值:
                      
          <s:bean name="com.bjsxt.struts2.tags.Dog" >
                          
          <s:param name="name" value="'pp'"></s:param>
                          
          <s:property value="name"/>
                         
                      
          </s:bean>
                     
                     
                  
          </li>
                 
                  
          <li>bean 查看debug情況:
                      
          <s:bean name="com.bjsxt.struts2.tags.Dog" var="myDog">
                          
          <s:param name="name" value="'oudy'"></s:param>
                      
          </s:bean>
                      拿出值:
                      
          <s:property value="#myDog.name"/>
                     
                  
          </li>
                  
          <hr />
                 
                  
          <li>include _include1.html 包含靜態英文文件
                      
          <s:include value="/_include1.html"></s:include>
                  
          </li>
                 
                  
          <li>include _include2.html 包含靜態中文文件
                      
          <s:include value="/_include2.html"></s:include>
                  
          </li>
                 
                  
          <li>include _include1.html 包含靜態英文文件,說明%用法
                      
          <s:set var="incPage" value="%{'/_include1.html'}" />
                      
          <s:include value="%{#incPage}"></s:include>
                  
          </li>
                 
                 
                  
          <hr />
                 
                  
          <li>if elseif else:
                      age 
          = <s:property value="#parameters.age[0]" /> <br />
                      
          <s:set var="age" value="#parameters.age[0]" />
                      
          <s:if test="#age < 0">wrong age!</s:if>
                      
          <s:elseif test="#parameters.age[0] < 20">too young!</s:elseif>
                      
          <s:else>yeah!</s:else><br />
                      
          <s:if test="#parameters.aaa == null">null</s:if>
                  
          </li>
                 
                  
          <hr />
                 
                  
          <li>遍歷集合:<br />
                  
          <s:iterator value="{1, 2, 3}" >
                      
          <s:property/> |
                  
          </s:iterator>
                  
          </li>
                  
          <li>自定義變量:<br />
                  
          <s:iterator value="{'aaa', 'bbb', 'ccc'}" var="x">
                      
          <s:property value="#x.toUpperCase()"/> |
                  
          </s:iterator>
                  
          </li>
                  
          <li>使用status:<br />
                  
          <s:iterator value="{'aaa', 'bbb', 'ccc'}" status="status">
                      
          <s:property/> |
                      遍歷過的元素總數:
          <s:property value="#status.count"/> |
                      遍歷過的元素索引:
          <s:property value="#status.index"/> |
                      當前是偶數?:
          <s:property value="#status.even"/> |
                      當前是奇數?:
          <s:property value="#status.odd"/> |
                      是第一個元素嗎?:
          <s:property value="#status.first"/> |
                      是最后一個元素嗎?:
          <s:property value="#status.last"/>
                      
          <br />
                  
          </s:iterator>
                 
                  
          </li>
                 
                  
          <li>
                  
          <s:iterator value="#{1:'a', 2:'b', 3:'c'}" >
                      
          <s:property value="key"/> | <s:property value="value"/> <br />
                  
          </s:iterator>
                  
          </li>
                 
                  
          <li>
                  
          <s:iterator value="#{1:'a', 2:'b', 3:'c'}" var="x">
                      
          <s:property value="#x.key"/> | <s:property value="#x.value"/> <br />
                  
          </s:iterator>
                  
          </li>
                 
                  
          <li>
                 
                  
          <s:fielderror fieldName="fielderror.test" theme="simple"></s:fielderror>
                 
                  
          </li></span>
          posted @ 2010-05-21 22:56 豪情 閱讀(249) | 評論 (0)編輯 收藏
          僅列出標題
          共3頁: 上一頁 1 2 3 
          主站蜘蛛池模板: 驻马店市| 布拖县| 库伦旗| 精河县| 喜德县| 淳安县| 息烽县| 策勒县| 仙居县| 濮阳市| 楚雄市| 大渡口区| 吉木萨尔县| 高青县| 柘城县| 安远县| 松江区| 长治县| 青铜峡市| 香格里拉县| 龙川县| 安徽省| 鄂伦春自治旗| 沅江市| 搜索| 玛曲县| 金溪县| 武山县| 古田县| 五家渠市| 炉霍县| 正蓝旗| 封丘县| 甘谷县| 康马县| 彰化市| 莎车县| 大厂| 西和县| 门源| 石泉县|