OGNL表达式之value stack和stack context

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
 pageEncoding="ISO-8859-1"%>
<!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=ISO-8859-1">
  <title>Login</title>
 </head>
 <body>
  <h1>
   Login JSP
  </h1>
  <form action="login.action">
   username:
   <input type="text" name="username">
   <br>
   password:
   <input type="text" name="password">
   <br>
   <input type="submit">
  </form>
 </body>
</html>
 
<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
   
    <title>My JSP 'result.jsp' starting page</title>
   
 <meta http-equiv="pragma" content="no-cache">
 <meta http-equiv="cache-control" content="no-cache">
 <meta http-equiv="expires" content="0">   
 <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
 <meta http-equiv="description" content="This is my page">
 <!--
 <link rel="stylesheet" type="text/css" href="styles.css">
 -->

  </head>
 
  <body>
    username:<s:property value="username"/><br>
    password:<s:property value="password"/><br>
    <s:debug></s:debug>

  </body>
</html>

 最后显示的图

注意:

  • parameters、request、session、application、attr等对象,存在于stack context中,访问这些对象需要用#前缀来指明。

       例如:request对象:用于访问HttpServletRequest的属性。例如#request['foo']或#request.foo,用于返回调用HttpServletRequest的getAttribute('foo')方法的返回值。

  • 如果需要访问ValueStack里的属性,直接通过${property}可访问,ValueStack是根对象。当系统创建了Action实例后,该Action实例已经被保存到了ValueStack中,故不用#即可访问Action属性了。

猜你喜欢

转载自applepieone.iteye.com/blog/1291182
今日推荐