基于OGNL的类型转换

来源:互联网 发布:caffe 数据层 编辑:程序博客网 时间:2024/06/06 03:01

package test;

import com.opensymphony.xwork2.Action;

import dao.User;

public class Testuser implements Action {

 private User user;                //User类型属性封装请求参数
 private String indicate;
 
 public User getUser() {
  return user;
 }

 public void setUser(User user) {
  this.user = user;
 }

 public String getIndicate() {
  return indicate;
 }

 public void setIndicate(String indicate) {
  this.indicate = indicate;
 }

 public String execute() throws Exception {
  //通过user属性的username属性和password属性来决定转向
  if(getUser().getUsername().equals("liming") &&getUser().getPassword().equals("admin"))
  {
   setIndicate("转换成功");
   return SUCCESS;
  }
  setIndicate("转换失败");
  return "error";
 }

}

上面的action类中包含了一个复合类型属性User,我们可以无需类型转换器,而是利用OGNL表达式来直接生成User实例。这种方式主要是在指定输入信息的jsp页面中,并不是直接给出user属性对应的表单域,而是将表单域的username属性对应到user属性的属性。

 

以下是输出页面的信息:

 <body>
    用户名:<s:property value="user.username"/><br>
    密     码:<s:property value="user.password"/><br>
    提    示:<s:property value="indicate"/>
  </body>