2011-08-03 11:05:56|  分类:java web |  标签: |字号大中小  订阅

普通链接
Web程序中最普通的应用是链接到其他页面,下面看Welcome.jsp。
<%@ page contentType="text/html; charset=UTF-8" %>
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
   <title>Welcome</title>
   <link href="<s:url value="/css/tutorial.css"/>" rel="stylesheet"
         type="text/css"/>
</head>
<body>
<h3>Commands</h3>
<ul>
   <li><a href="<s:url action="Login_input"/>">Sign On</a></li>
   <li><a href="<s:url action="Register"/>">Register</a></li>
</ul>
</body>
</html>
1.1说明
1.<%@ taglib prefix="s" uri="/struts-tags" %>
此句表示导入struts标签,并以s为前缀。即以s为前缀的标签均来自struts标签库。
2.<link href="<s:url value="/css/tutorial.css"/>" rel="stylesheet" type="text/css"/>
此句表示利用url标签导入一个路径,链接到一个文件,注意此路径为项目下的绝对路径。
3.<a href="<s:url action="Login_input"/>">Sign On</a>
此句表示利用url标签链接到一个action。
1.2注册action
我们在struts.xml中注册一个action来显示welcome.jsp。
<action name="Welcome">
      <result>/example/Welcome.jsp</result>
</action>
注意此action注册在package example下,所以在地址栏中敲入http://localhost:8080/StrutsHelloWorld/example/Welcome.action(StrutsHelloWorld是project名),会导向到Welcome.jsp。
2.使用通配符
对于上面的action注册,我们也可以用下面的语句代替。
<action name="*">
      <result>/example/{1}.jsp</result>
</action>
此句的意思是,如果在没有找到匹配的action名称的情况下,默认调用action名称.jsp。第一句中星号指任意,而第二句中{1}指代第一句中星号指代的内容。

    举个例子,如果在地址栏中敲入http://localhost:8080/StrutsHelloWorld/example/1.action,则系统查找struts.xml,发现没有name为1的action,即最后调用name为星号的这个action,根据此action,将输出/example/1.jsp。
或者读者可以直接点击Welcome.jsp中的两个超链接,系统将会报错找不到Login_input.jsp和Register.jsp。因为这两个action还没有注册,也没有相应的jsp文件。
3.带参数的链接
超链接后面带有参数大家不会陌生,诸如http://www.apache.com/?language=ch。这个链接后面带有一个language参数,其值为ch。你可以通过request.getParameter(“language”)找到参数值。下面演示在struts2中如何设置带参数的链接。看HelloWorld.jsp。
<%@ taglib prefix="s" uri="/struts-tags"%>
<html>
<head>
<title>Hello World!</title>
</head>
<body>
<h2><s:property value="message" /></h2>
<h3>Languages</h3>
<ul>
      <li>
      <s:url id="url" action="HelloWorld">
             <s:param name="request_locale">en</s:param>
      </s:url>
      <s:a href="%{url}">English</s:a>
      </li>
      <li>
      <s:url id="url" action="HelloWorld">
             <s:param name="request_locale">es</s:param>
      </s:url>
      <s:a href="%{url}">Espanol</s:a>
      </li>
</ul>
</body>
</html>

3.1说明
1.<s:url id="url" action="HelloWorld">
             <s:param name="request_locale">en</s:param>
</s:url>
此段表示设置一个url标签指向名为HelloWorld的action,此标签带一个id取名为url,后面会用到。带一个参数request_locale,其值为en。
2.<s:a href="%{url}">English</s:a>
此句用到了struts2的超链接标签,连接的地址即为1中url,点击English,发出的信息为:http://localhost:8080/StrutsHelloWorld/example/HelloWorld.action?request_locale=en
3.2注册action到struts.xml
<struts>
      <package name="example" namespace="/example"
             extends="struts-default">
             <action name="HelloWorld" >
                    <result>/example/HelloWorld.jsp</result>
             </action>
       </package>
</struts>

Struts2中的链接标签 s:url和s:a相关推荐

  1. Struts2中的链接标签

    摘自:http://www.java3z.com/cwbwebhome/article/article2/21001.html 为了使从一个页面中链接一个动态数据变得简单,Struts2框架提供了一系 ...

  2. 项目中技术细节(button用法、前端操作json、 hibernate的query.setFirstResult的用法注意、struts2中日期格式化标签)

    button的用法 struts2 s:iterator 中按钮获得当前行数据,并跳转 <button id="submissionz" onclick="var ...

  3. 二十四、Struts2中的UI标签

    二十四.Struts2中的UI标签 Struts2中UI标签的优势: 数据回显 页面布局和排版(Freemark),struts2提供了一些常用的排版(主题:xhtml默认 simple ajax) ...

  4. struts2中的s标签解析

    那就从简单的标签说起吧!1.x中常用的标签只有4中html.bean.logic.tiles 而struts2.0里的标签却没有分类,只用在jsp头文件加上 <%@ taglib prefix= ...

  5. struts2中struts:iterator标签的使用

    参考: 1):struts2 标签的使用之二 s:iterator     http://blog.csdn.net/chinajust/article/details/3922760 2)Strut ...

  6. struts2中s:select标签的使用

    1 静态生成 <s:select name="user.sex" list="#{'0':'男','1':'女'}" label="性别&quo ...

  7. struts2中s:select标签在freemarker中的使用

    作者:Yan 1.第一个例子: <s:select list="{'aa','bb','cc'}" theme="simple" headerKey=&q ...

  8. struts2中页面访问action的url问题,或许很简单

    http://www.iteye.com/problems/11940 转载于:https://www.cnblogs.com/diyunpeng/p/5471032.html

  9. struts2中各版本jar包需求及配置设置

    struts2中各版本jar包需求及配置设置 [原文:http://wangxinghaoaccp.blog.163.com/blog/static/11581023620113213161958/] ...

最新文章

  1. java StringBuffer类 常用方法
  2. ubuntu16.04安装mysql5.7.15
  3. 手机怎么打开f12_手机App调试(Android)
  4. 标记语言 编程语言 脚本语言分别有哪些? 区别是什么?
  5. Soot生成控制流图
  6. 电脑c语言怎么调出来的,c语言系统源代码_C语言判断系统版本的代码怎样将值调出来啊...
  7. adobe acrobat看PDF文档显示字体发虚,有毛刺的解决办法
  8. 22. 用户身份切换用户的特殊 shell与 PAM模块
  9. Drool规则引擎入门实例
  10. 【平面设计基础】11:配色——配色原理
  11. 3ds Max中的复制方式
  12. MINA、Netty、Twisted一起学(十二):HTTPS
  13. mysql键值相同_mysql什么是键值重复
  14. 刨根问底学Blog(转)
  15. 开发新产品的三个验证阶段(EVT/DVT/PVT)
  16. 京东淘宝手机销售量排行
  17. 基于loongnix20系统,libvlc代码直接集成测试
  18. 中小园区网配置案例 超详细
  19. ContOS中常用软件的安装
  20. kafka中consumer和partition的对应关系

热门文章

  1. 如何用pyecharts绘制柱状图,条形图,折线图,饼图,环形图,散点图
  2. OpenCASCADE绘制测试线束:OCAF 命令之几何属性命令
  3. boost::mpl模块实现logical相关的测试程序
  4. boost::mpi模块对gather() 和gatherv() 集合的测试
  5. boost::mp11::mp_reverse_fold_q相关用法的测试程序
  6. boost::mp11::construct_from_tuple相关用法的测试程序
  7. boost::biconnected_components用法的测试程序
  8. GDCM:gdcm::Anonymizer的测试程序
  9. GDCM:gdcm::Item的测试程序
  10. VTK:Qt之QImageToImageSource