昨天讲的Struts的流程,今天讲的是StrutsActionFormBean和Struts的标签
今天学好后为struts回显打下坚实基础,struts基本也就这些内容了!
1.ActionFormBean的基本步骤
总结:
<action path="/login" name="loginForm"
attribute =”ss” type="com.itcast.struts.action.LoginAction"
scope="request">。》
scope的默认值是session
action标签中attribute属性的值 作用是实现重用
如不设置
默认值action标签中name属性的值 mapping.getAttribute() loginForm
如设置attribute属性的值 输出的值为设置的值mapping.getAttribute() ss
看底层代码:
底层代码
instance 表示ActionForm的实例
if ("request".equals(mapping.getScope())) {
request.setAttribute(mapping.getAttribute(), instance);
request.setAttribute(mapping.getAttribute(), instance);
} else {
HttpSession session =
request.getSession();
session.setAttribute(mapping.getAttribute(), instance);
}
如不设置attribute属性默认值action标签中name属性的值的底层代码
public String getAttribute() {
if (this.attribute == null) {
return (this.name);
} else {
return (this.attribute);
}
}
Struts的ActionForm对象默认放在session作用域中,只要是转发,通用
2.处理ActionFormBean的基本步骤:
ActionForm的执行流程(ActionServlet自动调用)
1)检查并确认在Action中已经配置了对表单Bean的映射。
*
查找<action path="/login"
name="loginForm" 当中是否含有name属性,必须存在
* 如是<a href="/login.do">test</a>
这是就不需要action中的name属性
2)根据表单Bean的name属性,查找表单Bean的配置信息
检查页面的标签的name属性的值是否和ActionForm中的属性对象
<input type="text"
name="username" /> 是否存在username这个属性
3)检查该表单Bean的使用范围,查找在该范围内,是否已存在该Bean的实例。如果已经存在,那么就重用该实例。否则,就重新创建一个。
name="loginForm" scope="request" attribute="ss"
//增加新的
if
("request".equals(mapping.getScope())) {
request.setAttribute(mapping.getAttribute(),
instance);
} else {
HttpSession session =
request.getSession();
session.setAttribute(mapping.getAttribute(), instance);
}
//查找原有的
if ("request".equals(scope))
{
instance = (ActionForm)
request.getAttribute(attribute);
} else {
session = request.getSession();
instance = (ActionForm)
session.getAttribute(attribute);
}
4)调用该Bean实例的reset()方法重置其状态。
//是ActionForm中的属性,恢复到初始时null,获取默认的初始值
5)调用该Bean实例相应的setter方法,使用请求表单中的数据填充Bean的属性。
6)如果起用了validate机制,则调用表单Bean的validate()方法。如果validate()方法返回任何错误,则跳过步骤7)转到预定的出错处理页面。
7)将该表单Bean实例作为参数,传给处理器对象的execute()方法并执行。
Person person=new Person();
person.serUsernmae("zhang");
person.setPsw("tonggang")
request.setAttribute("person",person)
Person
person=(Person)request.getAttribute("person");
//不存在的情况
if(person==null){
Person p=new Person();
request.setAttribute("person",p)
}else{
//存在的情况下 reset
person.setUsernmae(null)l
pserson.setPsw(null);
System.out.println(persoon.getUsername()); //zhang
}
///////////////////////////////////////////////////////////////////////////////////////////////////////
<a
href="${pageContext.request.contextPath}/a.do">test</a>
<!--
中间不做什么工作,直接使用 forward 转到需要页面-->
<action path="/a"
forward="/success.jsp"></action>
优点:
<a
href="${pageContext.request.contextPath}/success.jsp">test</a>
//////////////////////////////////////////////////////////////////////////////////////////////////////
3.
下面是非常重要的DispatchAction,在项目中非常有用
dispatcheAction的使用规则
* 定义的类要继承 public class EmpAction
extends DispatchAction
* 该类中的方法定义规则
* 方法名称自定义(要和jsp页面中的参数的值一致)
* 方法的参数个数,参数类型,参数顺序和方法的返回类型要与action中的execute()方法一致
* 在jsp页面中的使用
路径如下
method=save 参数名称 method自定义 参数名称要和<action>的 parameter属性的值相同
参数值 save要和EmpAction中的方法名称相同
action="${pageContext.request.contextPath}/empAction.do?method=save"
* 在Struts-config.xml文件中的配置如下
<!--
method=save
parameter="method"
parameter的值是在jsp页面中参数的名称,
struts在解析的时候,根据parameter参数的值获取到method,在获取到method参数的值save
* String methodName=mapping.getParameter(); //method;
* String
paramValue=request.getParameter(methodName); //save
* //调用action中的save方法
-->
<action path="/empAction"
name="empForm" scope="request"
type="com.itcast.struts.action.EmpAction"
parameter="method">
</action>
3.下午讲的Struts标签
Struts标签离开Struts环境就不能使用了
使用Struts标签
1.导入jar包
2.页面引入
<%@ taglib
uri="http://struts.apache.org/tags-html" prefix="html"
%>
<html:html lang="true">
<body>
<html:form action="" method="post" focus="name">
<table border="0">
<tr>
<td>用户名:</td>
<td><html:text property="name" /></td>
</tr>
<tr>
<td>密码:</td>
<td><html:password property="password"
/></td>
</tr>
<tr>
<td colspan="2" align="center"><html:submit
/></td>
</tr>
</table>
</html:form>
</body>
</html:html >
3.常见错误及处理:
Form以EmpForm为例,Action以EmpAction为例
错误:
javax.servlet.ServletException:
javax.servlet.jsp.JspException: Cannot retrieve mapping for action:
"/"
<html:form action="empAction_save"
method="post"> Action在struts-config.xml文件中必须存在对应的action
<action path="/empAction_save">
</action>
javax.servlet.ServletException:
javax.servlet.jsp.JspException:
Form bean not specified on mapping for action:
"empAction_save.do"
原因缺少name="empForm"
<action path="/empAction_save"
name="empForm" scope="request">
</action>
--异常
javax.servlet.ServletException:
javax.servlet.jsp.JspException:
No getter method for property: "username" of bean:
"com.itcast.struts.form.EmpForm"
标签:
使用标签的源代码 , struts的解析的过程中,已经到strutc-config.xml文件中找到对应得信息
该标签中action属性的值是必须的 focus="psw" 当页面运行的时候,光标自动停留在那个组件上
<html:form action="empAction_save.do"
method="post" focus="psw">
标签转化后的代码
<form name="empForm" method="post"
action="/itcast1130strutstaglib/empAction_save.do">
对应的配置文件:
<action path="/empAction_save" name="empForm"
scope="request">
</action>
总结: action
method name
<html:form>标签 empAction_save.do post 无
<form>标签
/itcast1130strutstaglib/empAction_save.do post empForm(配置文件中name属性的值)
///////////////////////////////////////////////////////////////////////////////////////////////
使用标签的源代码 :
<html:text property="username" />
标签转化后的代码:
<input type="text" name="username"
value="">
//////////////////////////// 在ActionForm给属性赋初值
private String username="tonggang";
<input type="text" name="username"
value="tonggang"></td>
property name
<html:text>标签 username
<input>标签
username
///////////////////////////////////////////////////////////////////////////////////////////////
使用标签的源代码 :
<html:password property="psw" />
标签转化后的代码:
<input type="password" name="psw"
value="" redisplay="false">
redisplay="false" 不执行ActionForm 中 getPsw()方法
redisplay="true" 执行ActionForm 中 getPsw()方法
///////////////////////////////////////////////////////////////////////////////////////////////
使用标签的源代码 :
<html:textarea property="des" cols="10" rows="5"/>
标签转化后的代码:
<textarea name="des" cols="10"
rows="5"></textarea>
/////////////////////////////////////////////////////////////////////////////////////////////
使用标签的源代码 : html:radio 使用该标签时 value的属性必须赋值
<html:radio property="sex" value="男"></html:radio>男
<html:radio property="sex" value="女"></html:radio>女
标签转化后的代码:
<input type="radio" name="sex" value="男">男
<input type="radio" name="sex" value="女">女
//////////////////////////////////////////////////////////////////////////////////////////////////
使用标签的源代码
<html:checkbox property="love" value="美容"></html:checkbox>美容
<html:checkbox property="love" value="篮球"></html:checkbox>篮球
标签转化后的代码:
<input type="checkbox" name="love" value="美容">美容
<input type="checkbox"
name="love" value="篮球">篮球
//////////////////////////////////////////////////////////////////////////////////////////////////
使用标签的源代码
<html:select
property="edu">
<html:option value="博士">博士</html:option>
<html:option value="硕士">硕士</html:option>
<html:option value="本科">本科</html:option>
<html:option value="小学">小学</html:option>
</html:select>
标签转化后的代码:
<select name="edu">
<option value="博士">博士</option>
<option value="硕士">硕士</option>
<option value="本科">本科</option>
<option value="小学">小学</option>
</select>
//////////////////////////////////////////////////////////////////////////////////////////////////
使用标签的源代码
<td> <html:submit>保存</html:submit>
<html:submit value="保存"></html:submit></td>
<td> <html:reset value="重置"></html:reset></td>
标签转化后的代码:
<td> <input type="submit"
value="保存">
<input type="submit" value="保存"></td>
<td> <input
type="reset" value="重置"></td>
Link标签
<%@ page language="java"
pageEncoding="utf-8" contentType="text/html;charset=utf-8"
%>
<%@ page
import="com.itcast.bean.Person "%>
<%@ taglib
uri="http://struts.apache.org/tags-html" prefix="html"%>
<!--
html:link标签的使用
转化后的<a
href="/itcast1130strutstaglib/welcome.do">action</a>
-->
<html:link
action="welcome.do">action</html:link><br>
<!-- <a
href="welcome.do">action</a> -->
<html:link
href="welcome.do">href</html:link><br>
<!-- forward属性的值是struts-config.xml文件中的全局forward <forward name="welcomeforward"
path="/welcome.jsp"></forward>-->
<html:link forward="welcomeforward">forward</html:link><br>
<!-- <a
href="/itcast1130strutstaglib/welcome.jsp">page</a> -->
<html:link page="/welcome.jsp">page</html:link><br>
<%
String user_name="zhang";
pageContext.setAttribute("username",user_name);
%><br>
<!-- <a
href="/itcast1130strutstaglib/welcome.do?username124=zhang">paramaction</a><br>
-->
<!--
paramId 表示参数的名称
paramName 表示参数的值 值用jstl表示${username} 但在Struts中直接书写就可以了
paramName="username" 就是
pageContext.setAttribute("username",user_name);中username(key)
-->
<html:link action="welcome.do"
paramId="username124"
paramName="username">paramaction</html:link><br>
<!--<a
href="/itcast1130strutstaglib/welcome.jsp?username124=zhang">paramaforward</a><br>-->
<html:link forward="welcomeforward" paramId="username124"
paramName="username">paramaforward</html:link><br>
<!-- <a
href="welcome.do?username124=zhang">parama=href</a><br>
-->
<html:link
href="welcome.do" paramId="username124" paramName="username"
>parama=href</html:link><br>
<br>
<br>
<br>
<br>
<%
Person p=new Person();
p.setName("xupeicheng");
pageContext.setAttribute("person",p);
%>
<!-- <a
href="/itcast1130strutstaglib/welcome.do?name1=xupeicheng">paramaction</a><br>
-->
<!--
paramId="name1" 表示参数的名称
paramName="person" 表示一个javaBean
paramProperty="name" 表示javaBean中的一个属性
从paramName指定的javaBean中获取paramProperty指定的属性的值
-->
<html:link
action="welcome.do" paramId="name1" paramName="person" paramProperty="name"
>paramaction</html:link><br>
<!-- <a
href="welcome.do?name1=xupeicheng">paramahref</a><br>
-->
<html:link
href="welcome.do" paramId="name1" paramName="person" paramProperty="name"
>paramahref</html:link><br>
<!--<a
href="/itcast1130strutstaglib/welcome.jsp?name1=xupeicheng">paramaforward</a><br>
-->
<html:link forward="welcomeforward" paramId="name1" paramName="person"
paramProperty="name" >paramaforward</html:link><br>
5.html:rewrite标签的使用,用于生成url路径,但并不生成<a>
昨天讲的Struts
的流程,今天讲的是StrutsActionFormBean
和Struts
的标签
今天学好后为struts回显打下坚实基础,struts基本也就这些内容了!
1.ActionFormBean的基本步骤
总结:
<action path="/login" name="loginForm"
attribute =”ss” type="com.itcast.struts.action.LoginAction"
scope="request">。》
scope的默认值是session
action标签中attribute属性的值 作用是实现重用
如不设置
默认值action标签中name属性的值 mapping.getAttribute() loginForm
如设置attribute属性的值 输出的值为设置的值mapping.getAttribute() ss
看底层代码:
底层代码
instance 表示ActionForm的实例
if ("request".equals(mapping.getScope())) {
request.setAttribute(mapping.getAttribute(), instance);
request.setAttribute(mapping.getAttribute(), instance);
} else {
HttpSession session =
request.getSession();
session.setAttribute(mapping.getAttribute(), instance);
}
如不设置attribute属性默认值action标签中name属性的值的底层代码
public String getAttribute() {
if (this.attribute == null) {
return (this.name);
} else {
return (this.attribute);
}
}
Struts的ActionForm对象默认放在session作用域中,只要是转发,通用
2.处理ActionFormBean的基本步骤:
ActionForm的执行流程(ActionServlet自动调用)
1)检查并确认在Action中已经配置了对表单Bean的映射。
*
查找<action path="/login"
name="loginForm" 当中是否含有name属性,必须存在
* 如是<a href="/login.do">test</a>
这是就不需要action中的name属性
2)根据表单Bean的name属性,查找表单Bean的配置信息
检查页面的标签的name属性的值是否和ActionForm中的属性对象
<input type="text"
name="username" /> 是否存在username这个属性
3)检查该表单Bean的使用范围,查找在该范围内,是否已存在该Bean的实例。如果已经存在,那么就重用该实例。否则,就重新创建一个。
name="loginForm" scope="request" attribute="ss"
//增加新的
if
("request".equals(mapping.getScope())) {
request.setAttribute(mapping.getAttribute(),
instance);
} else {
HttpSession session =
request.getSession();
session.setAttribute(mapping.getAttribute(), instance);
}
//查找原有的
if ("request".equals(scope))
{
instance = (ActionForm)
request.getAttribute(attribute);
} else {
session = request.getSession();
instance = (ActionForm)
session.getAttribute(attribute);
}
4)调用该Bean实例的reset()方法重置其状态。
//是ActionForm中的属性,恢复到初始时null,获取默认的初始值
5)调用该Bean实例相应的setter方法,使用请求表单中的数据填充Bean的属性。
6)如果起用了validate机制,则调用表单Bean的validate()方法。如果validate()方法返回任何错误,则跳过步骤7)转到预定的出错处理页面。
7)将该表单Bean实例作为参数,传给处理器对象的execute()方法并执行。
Person person=new Person();
person.serUsernmae("zhang");
person.setPsw("tonggang")
request.setAttribute("person",person)
Person
person=(Person)request.getAttribute("person");
//不存在的情况
if(person==null){
Person p=new Person();
request.setAttribute("person",p)
}else{
//存在的情况下 reset
person.setUsernmae(null)l
pserson.setPsw(null);
System.out.println(persoon.getUsername()); //zhang
}
///////////////////////////////////////////////////////////////////////////////////////////////////////
<a
href="${pageContext.request.contextPath}/a.do">test</a>
<!--
中间不做什么工作,直接使用 forward 转到需要页面-->
<action path="/a"
forward="/success.jsp"></action>
优点:
<a
href="${pageContext.request.contextPath}/success.jsp">test</a>
//////////////////////////////////////////////////////////////////////////////////////////////////////
3.
下面是非常重要的DispatchAction,在项目中非常有用
dispatcheAction的使用规则
* 定义的类要继承 public class EmpAction
extends DispatchAction
* 该类中的方法定义规则
* 方法名称自定义(要和jsp页面中的参数的值一致)
* 方法的参数个数,参数类型,参数顺序和方法的返回类型要与action中的execute()方法一致
* 在jsp页面中的使用
路径如下
method=save 参数名称 method自定义 参数名称要和<action>的 parameter属性的值相同
参数值 save要和EmpAction中的方法名称相同
action="${pageContext.request.contextPath}/empAction.do?method=save"
* 在Struts-config.xml文件中的配置如下
<!--
method=save
parameter="method"
parameter的值是在jsp页面中参数的名称,
struts在解析的时候,根据parameter参数的值获取到method,在获取到method参数的值save
* String methodName=mapping.getParameter(); //method;
* String
paramValue=request.getParameter(methodName); //save
* //调用action中的save方法
-->
<action path="/empAction"
name="empForm" scope="request"
type="com.itcast.struts.action.EmpAction"
parameter="method">
</action>
3.下午讲的Struts标签
Struts标签离开Struts环境就不能使用了
使用Struts标签
1.导入jar包
2.页面引入
<%@ taglib
uri="http://struts.apache.org/tags-html" prefix="html"
%>
<html:html lang="true">
<body>
<html:form action="" method="post" focus="name">
<table border="0">
<tr>
<td>用户名:</td>
<td><html:text property="name" /></td>
</tr>
<tr>
<td>密码:</td>
<td><html:password property="password"
/></td>
</tr>
<tr>
<td colspan="2" align="center"><html:submit
/></td>
</tr>
</table>
</html:form>
</body>
</html:html >
3.常见错误及处理:
Form以EmpForm为例,Action以EmpAction为例
错误:
javax.servlet.ServletException:
javax.servlet.jsp.JspException: Cannot retrieve mapping for action:
"/"
<html:form action="empAction_save"
method="post"> Action在struts-config.xml文件中必须存在对应的action
<action path="/empAction_save">
</action>
javax.servlet.ServletException:
javax.servlet.jsp.JspException:
Form bean not specified on mapping for action:
"empAction_save.do"
原因缺少name="empForm"
<action path="/empAction_save"
name="empForm" scope="request">
</action>
--异常
javax.servlet.ServletException:
javax.servlet.jsp.JspException:
No getter method for property: "username" of bean:
"com.itcast.struts.form.EmpForm"
标签:
使用标签的源代码 , struts的解析的过程中,已经到strutc-config.xml文件中找到对应得信息
该标签中action属性的值是必须的 focus="psw" 当页面运行的时候,光标自动停留在那个组件上
<html:form action="empAction_save.do"
method="post" focus="psw">
标签转化后的代码
<form name="empForm" method="post"
action="/itcast1130strutstaglib/empAction_save.do">
对应的配置文件:
<action path="/empAction_save" name="empForm"
scope="request">
</action>
总结: action
method name
<html:form>标签 empAction_save.do post 无
<form>标签
/itcast1130strutstaglib/empAction_save.do post empForm(配置文件中name属性的值)
///////////////////////////////////////////////////////////////////////////////////////////////
使用标签的源代码 :
<html:text property="username" />
标签转化后的代码:
<input type="text" name="username"
value="">
//////////////////////////// 在ActionForm给属性赋初值
private String username="tonggang";
<input type="text" name="username"
value="tonggang"></td>
property name
<html:text>标签 username
<input>标签
username
///////////////////////////////////////////////////////////////////////////////////////////////
使用标签的源代码 :
<html:password property="psw" />
标签转化后的代码:
<input type="password" name="psw"
value="" redisplay="false">
redisplay="false" 不执行ActionForm 中 getPsw()方法
redisplay="true" 执行ActionForm 中 getPsw()方法
///////////////////////////////////////////////////////////////////////////////////////////////
使用标签的源代码 :
<html:textarea property="des" cols="10" rows="5"/>
标签转化后的代码:
<textarea name="des" cols="10"
rows="5"></textarea>
/////////////////////////////////////////////////////////////////////////////////////////////
使用标签的源代码 : html:radio 使用该标签时 value的属性必须赋值
<html:radio property="sex" value="男"></html:radio>男
<html:radio property="sex" value="女"></html:radio>女
标签转化后的代码:
<input type="radio" name="sex" value="男">男
<input type="radio" name="sex" value="女">女
//////////////////////////////////////////////////////////////////////////////////////////////////
使用标签的源代码
<html:checkbox property="love" value="美容"></html:checkbox>美容
<html:checkbox property="love" value="篮球"></html:checkbox>篮球
标签转化后的代码:
<input type="checkbox" name="love" value="美容">美容
<input type="checkbox"
name="love" value="篮球">篮球
//////////////////////////////////////////////////////////////////////////////////////////////////
使用标签的源代码
<html:select
property="edu">
<html:option value="博士">博士</html:option>
<html:option value="硕士">硕士</html:option>
<html:option value="本科">本科</html:option>
<html:option value="小学">小学</html:option>
</html:select>
标签转化后的代码:
<select name="edu">
<option value="博士">博士</option>
<option value="硕士">硕士</option>
<option value="本科">本科</option>
<option value="小学">小学</option>
</select>
//////////////////////////////////////////////////////////////////////////////////////////////////
使用标签的源代码
<td> <html:submit>保存</html:submit>
<html:submit value="保存"></html:submit></td>
<td> <html:reset value="重置"></html:reset></td>
标签转化后的代码:
<td> <input type="submit"
value="保存">
<input type="submit" value="保存"></td>
<td> <input
type="reset" value="重置"></td>
Link标签
<%@ page language="java"
pageEncoding="utf-8" contentType="text/html;charset=utf-8"
%>
<%@ page
import="com.itcast.bean.Person "%>
<%@ taglib
uri="http://struts.apache.org/tags-html" prefix="html"%>
<!--
html:link标签的使用
转化后的<a
href="/itcast1130strutstaglib/welcome.do">action</a>
-->
<html:link
action="welcome.do">action</html:link><br>
<!-- <a
href="welcome.do">action</a> -->
<html:link
href="welcome.do">href</html:link><br>
<!-- forward属性的值是struts-config.xml文件中的全局forward <forward name="welcomeforward"
path="/welcome.jsp"></forward>-->
<html:link forward="welcomeforward">forward</html:link><br>
<!-- <a
href="/itcast1130strutstaglib/welcome.jsp">page</a> -->
<html:link page="/welcome.jsp">page</html:link><br>
<%
String user_name="zhang";
pageContext.setAttribute("username",user_name);
%><br>
<!-- <a
href="/itcast1130strutstaglib/welcome.do?username124=zhang">paramaction</a><br>
-->
<!--
paramId 表示参数的名称
paramName 表示参数的值 值用jstl表示${username} 但在Struts中直接书写就可以了
paramName="username" 就是
pageContext.setAttribute("username",user_name);中username(key)
-->
<html:link action="welcome.do"
paramId="username124"
paramName="username">paramaction</html:link><br>
<!--<a
href="/itcast1130strutstaglib/welcome.jsp?username124=zhang">paramaforward</a><br>-->
<html:link forward="welcomeforward" paramId="username124"
paramName="username">paramaforward</html:link><br>
<!-- <a
href="welcome.do?username124=zhang">parama=href</a><br>
-->
<html:link
href="welcome.do" paramId="username124" paramName="username"
>parama=href</html:link><br>
<br>
<br>
<br>
<br>
<%
Person p=new Person();
p.setName("xupeicheng");
pageContext.setAttribute("person",p);
%>
<!-- <a
href="/itcast1130strutstaglib/welcome.do?name1=xupeicheng">paramaction</a><br>
-->
<!--
paramId="name1" 表示参数的名称
paramName="person" 表示一个javaBean
paramProperty="name" 表示javaBean中的一个属性
从paramName指定的javaBean中获取paramProperty指定的属性的值
-->
<html:link
action="welcome.do" paramId="name1" paramName="person" paramProperty="name"
>paramaction</html:link><br>
<!-- <a
href="welcome.do?name1=xupeicheng">paramahref</a><br>
-->
<html:link
href="welcome.do" paramId="name1" paramName="person" paramProperty="name"
>paramahref</html:link><br>
<!--<a
href="/itcast1130strutstaglib/welcome.jsp?name1=xupeicheng">paramaforward</a><br>
-->
<html:link forward="welcomeforward" paramId="name1" paramName="person"
paramProperty="name" >paramaforward</html:link><br>
5.html:rewrite标签的使用,用于生成url路径,但并不生成<a> 例子:
<br>
<html:rewrite action="welcome.do"></html:rewrite>
<a href="<html:rewrite action="welcome.do"></html:rewrite>">action</a>
<br>
<html:rewrite href="welcome.do"></html:rewrite>
<a href="<html:rewrite href='welcome.do'></html:rewrite>">href</a>
<br>
<html:rewrite forward="welcomeforward"></html:rewrite>
<a href="<html:rewrite forward="welcomeforward"></html:rewrite>">forward</a>
<br>
<html:rewrite page="/welcome.jsp"></html:rewrite>
<a href="<html:rewrite page="/welcome.jsp"></html:rewrite>">page</a>
<br>
<%
String user_name="zhang";
pageContext.setAttribute("username",user_name);
%>
<br>
<html:rewrite action="welcome.do" paramId="username1" paramName="username"></html:rewrite>
<a href="<html:rewrite action="welcome.do" paramId="username1" paramName="username"></html:rewrite>">action</a>
<br>
<br>
<html:rewrite href="welcome.do" paramId="username1" paramName="username"></html:rewrite>
<a href="<html:rewrite href="welcome.do" paramId="username1" paramName="username"></html:rewrite>">href</a>
<br>
<html:rewrite forward="welcomeforward" paramId="username1" paramName="username"></html:rewrite>
<a href="<html:rewrite forward="welcomeforward" paramId="username1" paramName="username"></html:rewrite>">forward</a>
<br>
<html:rewrite page="/welcome.jsp" paramId="username1" paramName="username"></html:rewrite>
<a href="<html:rewrite page="/welcome.jsp" paramId="username1" paramName="username"></html:rewrite>">page</a>
<%
Person p=new Person();
p.setName("xupeicheng");
pageContext.setAttribute("person",p);
%>
<br>
<html:rewrite action="welcome.do" paramId="name1" paramName="person" paramProperty="name"></html:rewrite>
<a href="<html:rewrite action="welcome.do" paramId="name1" paramName="person" paramProperty="name"></html:rewrite>">action</a>
<br>
<br>
<html:rewrite href="welcome.do" paramId="name1" paramName="person" paramProperty="name"></html:rewrite>
<a href="<html:rewrite href="welcome.do" paramId="name1" paramName="person" paramProperty="name"></html:rewrite>">href</a>
<br>
<html:rewrite forward="welcomeforward" paramId="name1" paramName="person" paramProperty="name"></html:rewrite>
<a href="<html:rewrite forward="welcomeforward" paramId="name1" paramName="person"></html:rewrite>">forward</a>
<br>
<html:rewrite page="/welcome.jsp" paramId="name1" paramName="person" paramProperty="name"></html:rewrite>
<a href="<html:rewrite page="/welcome.jsp" paramId="name1" paramName="person" paramProperty="name"></html:rewrite>">page</a>
posted on 2010-01-16 02:36
d66380022 阅读(2859)
评论(0) 编辑 收藏