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)  編輯  收藏

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


          網站導航:
           
          主站蜘蛛池模板: 台前县| 柞水县| 阳春市| 兰溪市| 雅安市| 达尔| 武隆县| 太和县| 永兴县| 澜沧| 灵宝市| 连州市| 巍山| 宣恩县| 新巴尔虎左旗| 锡林浩特市| 鸡泽县| 蒲城县| 扬中市| 广饶县| 丰宁| 沂源县| 十堰市| 唐河县| 北京市| 徐水县| 江北区| 嘉鱼县| 仙游县| 湟源县| 金门县| 凉山| 会同县| 中牟县| 仙游县| 晴隆县| 精河县| 虞城县| 尼木县| 长乐市| 平罗县|