Struts标签之HTML标签

  1. <html:link>的使用方法

html:link标签生成一个锚点(<a>)元素。我从html:link标签如何构造基本url和如何构造query参数两个方面来介绍这个标签。

 

①构造基本url是依据该标签的如下四个属性进行的,这四个属性一次只能出现一个。让我们看看它们:

  • forward,指定一个全局ActionForward的名称。另外如果forward是module相关的则该forward必须指向一个action而不能是一个页面。
  • action,指定一个Action的名称(/XXXX.do)。
  • href,struts会直接使用这个值而不会对其进行任何处理。
  • page,指定一个页面的路径,必须以“/”开始。

②构造query参数,下面列举了可能的形式,其中baseurl只是一个占位符:

  • baseurl?p=00001(单参单值)
  • baseurl?p1=00001&p2=00002&p3=00003(多参单值)
  • baseurl?p=00001&p=00002&p=00003(单参多值)
  • baseurl?p1=00001&p2=00002&p=00001&p=00002&p=00003(混合)

下面我们以代码示例来说明每一种html:link的用法,首先让我们花点时间看看相关action中的代码:

<!-- 下面所有代码的数据都是在这里构造的 -->;
public ActionForward execute(ActionMapping mapping,ActionForm form,
    HttpServletRequest request,HttpServletResponse response) {

  DataForm dataForm = (DataForm) form;

  dataForm.setParam("00001");

  HashMap paramSingleMap = new HashMap();
  paramSingleMap.put("p1","00001");
  paramSingleMap.put("p2","00002");
  paramSingleMap.put("p3","00003");  
  dataForm.setParamSingleMap(paramSingleMap);

  HashMap paramMultiMap = new HashMap();
  paramMultiMap.put("p",new String[]{"00001","00002","00003"});  
  dataForm.setParamMultiMap(paramMultiMap);

  HashMap paramSMMap = new HashMap();
  paramSMMap.put("p1","00001");
  paramSMMap.put("p2","00002");
  paramSMMap.put("p",new String[]{"00001","00002","00003"});  
  dataForm.setParamSMMap(paramSMMap);

  List&amp;lt;Person&amp;gt; persons = new ArrayList&amp;lt;Person&amp;gt;();  
  Person person1 = new Person();
  person1.setId("00001");
  person1.setName("赵辰");  
  Person person2 = new Person();
  person2.setId("00002");
  person2.setName("李为芳");  
  Person person3 = new Person();
  person3.setId("00003");
  person3.setName("王微");  
  persons.add(person1);
  persons.add(person2);
  persons.add(person3);  
  dataForm.setPersons(persons);

  return mapping.findForward("success");
}
<!-- 这用来设置一个位置 -->
<html:link linkName="top"/>
<!-- 这用来定位到上面的那个位置 -->
<html:link page="/link.do" anchor="top">Go Top</html:link>
<html:link page="/link.do" paramId="p" paramName="dataForm" 
    paramProperty="param">
  单参单值
</html:link><br/>
<html:link page="/link.do"  property="paramSingleMap">
  多参单值
</html:link><br/>
<html:link page="/link.do"  property="paramMultiMap">
  单参多值
</html:link><br/>
<html:link page="/link.do"  property="paramSMMap">
  混合
</html:link>

③下面的代码示例了html:link标签的indexed属性和indexId属性的用法,这两个属性只有html:link标签嵌套在logic:iterate标签中时才可用。

<logic:iterate   name="persons" id="personid">
  <html:link
        action="/link.do" //要执行的Action
        paramId="person" //所传递参数的名称,如"link.do?person=xx"
        paramName="personid"//所传递参数接收的来源
        paramProperty="id" //参数接收值来源
        indexed="true"
        indexId="number">person</html:link>
  <br/>
</logic:iterate>
下面是上面代码的运行结果(产生的html)
  &lt;a href="/struts-demo/link.do?person=00001&amp;number=0"&gt;赵辰&lt;/a&gt;&lt;br/&gt;
  &lt;a href="/struts-demo/link.do?person=00002&amp;number=1"&gt;李为芳&lt;/a&gt;&lt;br/&gt;
  &lt;a href="/struts-demo/link.do?person=00003&amp;number=2"&gt;王微&lt;/a&gt;&lt;br/&gt; 
  其中的number是由indexId="number"确定的,而该参数的值为元素在集合中的位置。
--&gt;

html:rewrite标签和html:link标签类似只是不生成锚点(<a>),而是简单的输出字符串。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值