ognl(一)

2014-11-24 11:24:42 · 作者: · 浏览: 9
知识点:struts2页面标签和ognl
1、struts2页面标签
要使用struts2的标签必须在 jsp页面导入<%@ taglib prefix="s" uri="/struts-tags"%>
1.1、select标签(代码如下)
Java代码
[java]
注意:#表示取值栈中的值,而attr表示不需要指定作用域,用的比较多,但是用request也是可以的。
struts2首先访问jsp页面的时候,不会像struts1一样调用get方法来初始化页面的标签,而是直接到值栈中去拿值(容错能力比struts1强)
1.2、checkboxlist标签(代码如下)
Java代码
[java]
注意:当在页面上选中select标签的值或者checkbox的值,假如要在后台拿选择的情况,则必须定义相应的变量,命名必须和页面相应标签的名字相同,当是checkbox时,则action中定义拿值的变量必须是数组。假如页面有多个标签则后台必须有相对应的拿值属性,否则会报空指针错误(代码如下)
Java代码
package cn.zhuojingxinxi.web;
import java.util.ArrayList;
import java.util.List;
import org.apache.struts2.ServletActionContext;
import cn.zhuojingxinxi.entity.Users;
public class UsersAction {
private Users users=null;
private int [] mycheckbox;
private int [] mylist;
public int[] getMycheckbox() {
return mycheckbox;
}
public void setMycheckbox(int[] mycheckbox) {
this.mycheckbox = mycheckbox;
}
public int[] getMylist() {
return mylist;
}
public void setMylist(int[] mylist) {
this.mylist = mylist;
}
public int[] getCheckbox() {
return mycheckbox;
}
public void setCheckbox(int[] mycheckbox) {
this.mycheckbox = mycheckbox;
}
public Users getUsers() {
return users;
}
public void setUsers(Users users) {
this.users = users;
}
public String execute(){
ServletActionContext.getRequest().setAttribute("list", getList());
if(mycheckbox!=null){
for (int i = 0; i < mycheckbox.length; i++) {
System.out.println(mycheckbox[i]);
}
}
return "success";
}
public List getList(){
List list=new ArrayList();
Users users1=new Users();
users1.setUname("zhangsan");
users1.setAge(21);
list.add(users1);
Users users2=new Users();
users2.setUname("lisi");
users2.setAge(24);
list.add(users2);
Users users3=new Users();
users3.setUname("wangwu");
users3.setAge(25);
list.add(users3);
return list;
}
}
[java]
package cn.zhuojingxinxi.web;
import java.util.ArrayList;
import java.util.List;
import org.apache.struts2.ServletActionContext;
import cn.zhuojingxinxi.entity.Users;
public class UsersAction {
private Users users=null;
private int [] mycheckbox;
private int [] mylist;
public int[] getMycheckbox() {
return mycheckbox;
}
public void setMycheckbox(int[] mycheckbox) {
this.mycheckbox = mycheckbox;
}
public int[] getMylist() {
return mylist;
}
public void setMylist(int[] mylist) {
this.mylist = mylist;
}
public int[] getCheckbox() {
return mycheckbox;
}
public void setCheckbox(int[] mycheckbox) {
this.mycheckbox = mycheckbox;
}
public Users getUsers() {
return users;
}
public void setUsers(Users users) {
this.users = users;
}
public String execute(){
ServletActionContext.getRequest().setAttribute("list", getList());
if(mycheckbox!=null){
for (int i = 0; i < mycheckbox.length; i++) {
System.out.println(mycheckbox[i]);
}
}