随笔-54  评论-0  文章-2  trackbacks-0

昨天讲的Struts的流程,今天讲的是StrutsActionFormBeanStruts的标签

今天学好后为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);

        }

    }

 StrutsActionForm对象默认放在session作用域中只要是转发通用

2.处理ActionFormBean的基本步骤

 ActionForm的执行流程(ActionServlet自动调用)

       1检查并确认在Action中已经配置了对表单Bean的映射。

          * 查找<action path="/login" name="loginForm" 当中是否含有name属性必须存在

          * 如是<a href="/login.do">test</a> 这是就不需要action中的name属性

       2)根据表单Beanname属性,查找表单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机制,则调用表单Beanvalidate()方法。如果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.常见错误及处理:

FormEmpForm为例,ActionEmpAction为例

错误:

javax.servlet.ServletException: javax.servlet.jsp.JspException: Cannot retrieve mapping for action: "/"

   <html:form action="empAction_save" method="post"> Actionstruts-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的流程,今天讲的是StrutsActionFormBeanStruts的标签

 

今天学好后为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);

        }

    }

 StrutsActionForm对象默认放在session作用域中只要是转发通用

2.处理ActionFormBean的基本步骤

 ActionForm的执行流程(ActionServlet自动调用)

       1检查并确认在Action中已经配置了对表单Bean的映射。

          * 查找<action path="/login" name="loginForm" 当中是否含有name属性必须存在

          * 如是<a href="/login.do">test</a> 这是就不需要action中的name属性

       2)根据表单Beanname属性,查找表单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机制,则调用表单Beanvalidate()方法。如果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.常见错误及处理:

FormEmpForm为例,ActionEmpAction为例

错误:

javax.servlet.ServletException: javax.servlet.jsp.JspException: Cannot retrieve mapping for action: "/"

   <html:form action="empAction_save" method="post"> Actionstruts-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 阅读(2852) 评论(0)  编辑  收藏