现在的位置: 首页 > 综合 > 正文

OGNL相关实验

2018年02月21日 ⁄ 综合 ⁄ 共 2700字 ⁄ 字号 评论关闭

今天做了一个web工程小实验,用来帮助理解OGNL,EL,值栈的相关概念,以及struts2标签中value属性的对象查找范围等等。
web工程很简单,只有一个类:

package org.action;
public class LoginAction {
	private String username;
	private String password;
	public String getUsername(){
		return username;
	}
	public void setUsername(String username){
		this.username=username;
	}
	public String getPassword(){
		return password;
	}
	public void setPassword(String password){
		this.password=password;
	}
	public String execute(){
		return "success";
	}
}

web.xml文件如下:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">
  <welcome-file-list>
    <welcome-file>login.jsp</welcome-file>
  </welcome-file-list>
  <filter>
    <filter-name>struts2</filter-name>   <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
  </filter>
  <filter-mapping>
    <filter-name>struts2</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>
</web-app>

struts.xml文件如下:

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
	<package name="default" extends="struts-default">
		<action name="login" class="org.action.LoginAction">
			<result name="success">/welcome.jsp</result>
		</action>
	</package>
</struts>

Login.jsp如下:

<%@ page language="java"  pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
    <head>
    <title>登录页面</title>
    </head>
    <body>
    <form action="login.action" method="post">
    <table align="center" border=1  width="300" bgcolor=#F5FFE1>
    <tr><td colspan="2" align="center"  width="250" bgcolor="#CCCCFF">用户登录界面</td></tr>
    <tr><td width="50">姓名:</td><td><input type="text" name="username"/></td></tr>
    <tr><td width="50">密码:</td><td><input type="password" name="password" size=22/></td></tr>
    <tr><td  align="center" colspan=2><input type="submit" value="登录" />
		 <input type="reset" value="重置" /></td></tr>
    </table>
    </form>
    </body>
</html>

welcome.jsp如下:

<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib uri="/struts-tags" prefix="s" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>欢迎界面</title>
  </head>
  <body bgcolor=#F5FFE1>
	<s:set name="var1" value="username" scope="session"/>
	欢迎您! ${var1}<br />
	哈哈  %{var1}<br />
	哈哈    #var1<br />
	哈哈   <s:property value="var1" /><br />
	哈哈  <s:property value="%{var1}" /><br />
	哈哈  <s:property value="#var1" /><br />
	哈哈  <s:property value="%{#var1}" /><br />
	哈哈  <s:property value="%{#session.var1}" /><br />
	哈哈  <s:property value="#root.var1" /><br />	
  </body>
</html>

最后不要忘了在工程中添加struts2所需的5个jar包

下面测试中会变换welcome.jsp中body部分的代码,用户名输入bbb。
测试取值栈中的变量username的值
代码:

结果:

测试<s:set>标签的默认赋值范围
代码:

结果:

测试取session中变量的情况
代码:

结果:

抱歉!评论已关闭.