您的位置:首页 > 编程语言 > Java开发

Struts的FormBean及常见错误和标签的使用

2015-05-11 17:09 399 查看
1.ActionFormBean的基本步骤
总结:

<actionpath="/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的基本步骤

总结:

<actionpath="/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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: