今天刚刚开始学EL表达式,是看着视频学习的,为了练习把视频上的几个最基本的例子写了下来。
学习步骤是这样的:
1.在Action中设值
2.在Jsp中把Action中的值取出来,用EL表达式显示在页面上。
为了学习在Action中使用了两个自己定义的对象,先把那两个对象贴出来:
Group:
package com.company.struts;
public class Group {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
User:
package com.company.struts;
public class User {
private String name;
private int age;
private Group group;
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Group getGroup() {
return group;
}
public void setGroup(Group group) {
this.group = group;
}
}
TestElAction中的代码:
package com.company.struts;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
/**
* 测试EL表达式
* @author Administrator
*
*/
public class TestElAction extends Action {
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest req, HttpServletResponse res){
//字符串
req.setAttribute("hello", "HelloWorld!");
//结构
Group group = new Group();
group.setName("学习系");
User user = new User();
user.setName("张三");
user.setAge(19);
user.setGroup(group);
req.setAttribute("user", user);
//map
Map map = new HashMap();
map.put("key1", "value1");
map.put("key2", "value2");
req.setAttribute("map", map);
//字符串数组
String[] strValue = new String[]{"a", "b", "c"};
req.setAttribute("strvalue", strValue);
//对象数组
User[] users = new User[10];
for(int i = 0; i < 10; i++){
User u = new User();
u.setName("U_" + (i + 1));
users[i] = u;
}
req.setAttribute("users", users);
//List
List list = new ArrayList();
for(int i = 0; i < 10; i++ ){
list.add("List" + i);
}
req.setAttribute("list", list);
//empty
req.setAttribute("value2", "");
req.setAttribute("value3", new User());
req.setAttribute("value4", "123214");
return mapping.findForward("testEl");
}
}
用来做视图端显示的Jsp
testEl.jsp:
<%@ page language="java" contentType="text/html; charset=GB18030"
pageEncoding="GB18030"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB18030">
<title>测试EL表达式</title>
</head>
<body>
<h1>测试EL表达式</h1>
<hr>
<li>字符串</li><br>
字符串:${hello }
<p>
<li>结构,采用.进行导航,也称存取器</li><br>
姓名:${user.name }<br>
年龄:${user.age }<br>
所属组:${user.group.name }<br>
<p>
<li>Map,采用.进行导航,也称存取器 </li><br>
Key1的value:${map.key1 }<br>
Key2的value:${map.key2 }<br>
<p>
<li>字符串数组,采用[]进行导航,也称存取器</li><br>
数组[2]:${strvalue[1] }<br>
<p>
<li>对象数组,采用[]进行导航,也成存取器</li><br>
对象数组[3]:${users[2].name }<br>
<p>
<li>List对象,采用[]进行导航</li><br>
List[2]:${list[2] }<br>
<p>
<li>运算符</li><br>
2+3=${2+3 }<br>
运算符支持说明:<br>
<!--
==/eq
!=/ne
</lt
>/gt
<=/le
>=/ge
&&/and
||/or
!/not
//div
%/mod
--><br>
<p>
<li>empty测试</li><br>
value1:${empty value1 }<br>
value2:${empty value2 }<br>
value3:${empty value3 }<br>
value4:${empty value4 }<br>
</body>
</html>
下面是配置文件:
struts-config.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd">
<struts-config>
<action path="/testEl"
type="com.company.struts.TestElAction">
<forward name="testEl" path="/testEl.jsp"/>
</action>
</action-mappings>
</struts-config>
这样就OK啦,运行起来就可以看到结果啦。