- <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&lt;Person&gt; persons = new ArrayList&lt;Person&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) <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>),而是简单的输出字符串。
Struts标签之HTML标签
最新推荐文章于 2021-06-30 23:32:42 发布