html:link

来源:互联网 发布:阿里云ddns教程 编辑:程序博客网 时间:2024/04/28 22:18

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

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

forward,指定一个全局ActionForward的名称。另外如果forward是module相关的则该forward必须指向一个action而不能是一个页面。
action,指定一个Action的名称。
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<Person> persons = new ArrayList<Person>();  
  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" name="dataForm" property="paramSingleMap">
  多参单值
</html:link><br/>
<html:link page="/link.do" name="dataForm" property="paramMultiMap">
  单参多值
</html:link><br/>
<html:link page="/link.do" name="dataForm" property="paramSMMap">
  混合
</html:link>
下面的代码示例了html:link标签的indexed属性和indexId属性的用法,这两个属性只有html:link标签嵌套在logic:iterate标签中时才可用。

<logic:iterate id="person" name="dataForm" property="persons">
  <html:link action="/link.do" paramId="person" paramName="person"
   paramProperty="id" indexed="true" indexId="number">
    person
  </html:link>
  <br/>
</logic:iterate>
<!-- 下面是上面代码的运行结果(产生的html)
  <a href="/struts-demo/link.do?person=00001&number=0">赵辰</a><br/>
  <a href="/struts-demo/link.do?person=00002&number=1">李为芳</a><br/>
  <a href="/struts-demo/link.do?person=00003&number=2">王微</a><br/>
  其中的number是由indexId="number"确定的,而该参数的值为元素在集合中的位置。
-->
html:rewrite标签和html:link标签类似只是不生成锚点(<a>),而是简单的输出字符串。


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/AWUSOFT/archive/2008/05/16/2452874.aspx

原创粉丝点击