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屬性了。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章