posts - 495,  comments - 11,  trackbacks - 0

          <?xml:namespace prefix = st1 />1.1.1 業務控制器

          為本示例建立一個業務控制器,該控制器用到了代碼8.1中定義的Person人員信息類。該業務控制器如代碼8.4所示。

          代碼8.4 Struts 2OGNL示例業務控制器

          package ch8;
          import java.util.Date;
          import java.util.LinkedList;
          import java.util.List;
          import javax.servlet.http.HttpServletRequest;
          import javax.servlet.http.HttpServletResponse;
          import javax.servlet.http.HttpSession;
          import org.apache.struts2.ServletActionContext;
          import com.opensymphony.xwork2.ActionContext;
          import com.opensymphony.xwork2.ActionSupport;
          public class OgnlAction extends ActionSupport {
          //List
          類型屬性
          private List persons;
          //execute
          方法
          public String execute() throws Exception {
          //
          獲得ActionContext實例,以便訪問Servlet API
          ActionContext ctx = ActionContext.getContext();
          //
          存入application
          ctx.getApplication().put("msg", "application
          信息");
          //
          保存session
          ctx.getSession().put("msg", "seesion
          信息");
          //
          保存request信息
          HttpServletRequest request = ServletActionContext.getRequest();
          request.setAttribute("msg", "request
          信息");
          //
          persons賦值
          persons = new LinkedList();
          Person person1=new Person();
          person1.setName("pla1");
          person1.setAge(26);
          person1.setBirthday(new Date());
          persons.add(person1);

          Person person2=new Person();
          person2.setName("pla2");
          person2.setAge(36);
          person2.setBirthday(new Date());
          persons.add(person2);
          Person person3=new Person();
          person3.setName("pla3");
          person3.setAge(16);
          person3.setBirthday(new Date());
          persons.add(person3);
          return SUCCESS;
          }
          public List getPersons() {
          return persons;
          }
          public void setPersons(List persons) {
          this.persons = persons;
          }
          }

          該業務控制器分別在applicationsessionrequest中存入名為“msg”的字符串信息,另外定義了一個List類型屬性,同時添加了兩個Person類型元素。在配置文件中增加了相應的配置,代碼如下:


          /ch8/showognl.jsp

          1.1.2 JSP視圖

          showognl.jsp是使用了OGNL表達式的JSP視圖,視圖用來顯示Action中處理的各種信息,讀者可以看到,使用OGNL表達式,代碼更加簡潔和直觀,如代碼8.5所示。

          代碼8.5使用OGNL表達式的JSP視圖


          http://www.w3.org/TR/ xhtml1/DTD/xhtml1-transitional.dtd">
          http://www.w3.org/1999/xhtml">

          訪問OGNL上下文和Action上下文

          parameters: 
          request.msg: 
          session.msg: 
          application.msg: 
          attr.msg: 
          
          
          用于過濾和投影(projecting)集合
          年齡大于20
          1.???????????????????????   - 年齡:
          姓名為pla1的年齡: 
          
          
          構造Map
          The value of key "foo1" is 

          1.1.3 運行示例

          在瀏覽器中輸入http://localhost:8080/bookcode/ch8/OgnlAction.action?msg=hello,運行結果如圖8.3所示。

          8.3 Struts 2中使用OGNL表達式

          說明

          本示例演示了如何使用OGNL表達式來訪問OGNL上下文和值棧,同時演示了如何使用OGNL表達式進行集合操作。對讀者深入理解Struts 2OGNL表達式的使用有所幫助。

          posted on 2009-08-15 17:29 jadmin 閱讀(88) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 三原县| 都昌县| 株洲市| 威宁| 夏河县| 许昌市| 临沭县| 西宁市| 乌苏市| 宁波市| 石棉县| 昌黎县| 东辽县| 长宁区| 舞钢市| 万载县| 宜阳县| 吉林市| 凉城县| 滦平县| 栾城县| 伊吾县| 华坪县| 内黄县| 河津市| 巴南区| 通许县| 玉门市| 罗山县| 抚顺县| 彩票| 乐昌市| 和田县| 余姚市| 纳雍县| 兰坪| 神池县| 阿拉善左旗| 上林县| 陕西省| 景泰县|