Strtus2标签s:url

news/2025/2/23 9:05:16

在没有使用Struts2的时候可以使用el来进行url传参。而在Struts2中不推荐使用el(其实在Struts2.0.0.11之后就不再支持el)而推荐使用功能更为强大的ognl表达式语言。那么怎么使用ognl实现url传参?

<s:url>就是解决这一问题的标签



<s:url>标签一般和超链接 <a>一起使用,用于带多个参数。 

<a href="
<s:url action="">
   <s:param name=" " value=""></s:param> 
   <s:param name=" " value=""></s:param> 
   <s:param name=" " value=""></s:param> 
</s:url>"
>测试连接</a>


<s:url>生成一个url地址,可以通过url标签制定的<s:param>子元素向URL地址发送请求参数


<s:url action=""> 指定请求地址
<s:param name="" value=""></s:param> 指定参数
</s:url>


例子:

      

  <!--actionaction的名字,为url添加参数使用param标签-->
 
        <s:url var="url" action="mainPage"> 
            <s:param name="id" value="123"/> 
        </s:url> 

        <!--使用上面定义的url--> 
        <s:a href="%{url}">测试连接</s:a> 

    该方法在生成的页面源码中生成如下代码 
    <a href="/NetBookShop_081029/mainPage?id=123">测试连接</a> 

   

includeParams属性


        

<!--最重要的属性includeParams,该属性有三个值:none get all,默认值为get--> 
        <!--属性值为get时,该url会将访问其所在jsp的的请求的所有get方法的参数添加到自身来--> 
        <!--属性值为all时更是将get和post的的参数值全部添加到自身来--> 
        <!--一般我们并不需要额外的参数,所以定义为none--> 
    <s:url var="url" action="mainPage" includeParams="none"> 
            <s:param name="id" value="123"/> 
        </s:url> 


includeContext属性

   

 <!--includeContext:有true和false两个值。url中是否包含上下文,也就是在url中的项目名--> 
        <!--这个一般不用改,让它自动包含,否则会定位到服务器的根目录下--> 
        <s:url var="url" action="mainPage" includeContext="false"> 
            <s:param name="id" value="123"/> 
        </s:url> 
    生成的url就下面的样子了,注意在普通的html中使用/会定位到服务器的根目录,而在struts的标签里使用/会自动添加上下文,所以不用麻烦的指定项目名 
<a href="/mainPage?id=123">url</a> 


Method属性


       

 <!--method用于指定执行action的方法 这个等同于action="mainPage!ok"--> 
        <s:url var="url" action="mainPage" method="ok"> 
            <s:param name="id" value="123"/> 
        </s:url> 


namespace属性 


       

 <!--指定命名空间后,生成的url会使用相对路径,具体的看我的结果--> 
        <s:url var="url" action="mainPage" namespace="user"> 
            <s:param name="id" value="123"/> 
        </s:url> 
    结果如下 
<a href="user/mainPage?id=123">url</a>


http://www.niftyadmin.cn/n/736672.html

相关文章

在Action中获取servlet API(2)

servletAPI在Struts2中的角色 Xwork与Web是无关的&#xff0c;Action不用去依赖于任何Web容器&#xff0c;不用和那些 JavaServlet复杂的请求&#xff08;Request&#xff09;、响应(Response)关联在一起。对请求&#xff08;Request&#xff09;的参数(Param),可以使用拦截器框…

Struts2文件上传(1)_实现

使用Struts2实现文件上传很简单 步骤&#xff1a; 1.配置拦截器&#xff1a;fileUpload &#xff08;继承defaultStack即可&#xff09; 2.引用包commons-fileupload-1.2.1.jar commons-io-1.3.2.jar&#xff08;io处理的工具包&#xff09; 3.指定form传送数据的形式enctyp…

Struts2文件上传(2)_细节

一.Struts2文件上传实现细节简介 Struts2并未提供自己的请求解析器&#xff0c;也就是就Struts2不会自己去处理multipart/form-data的请求&#xff0c;它需要调用其他请求解析器&#xff0c;将HTTP请求中的表单域解析出来。但Struts2在原有的上传解析器基础上做了进一步封装&am…

【Java SE】System类

System类代表系统&#xff0c;系统级的很多属性和控制方法都放置在该类的内部。该类位于java.lang包。 由于该类的构造方法是private的&#xff0c;所以无法创建该类的对象&#xff0c;也就是无法实例化该类。其内部的成员变量和成员方法都是static的&#xff0c;所以也可以很方…

spring整合Struts2

Spring整合Struts的目的 Spring是一个IOC框架&#xff08;或者说是一个ioc容器&#xff09;。Ioc的思想是实现组件之间的解耦。在web程序中如果使用Struts2作为mvc框架&#xff0c;那么怎么实现action和业务层的解耦呢&#xff1f;这就是spring整合Struts2的目的所在。 步骤&am…

hibernate继承关系映射

在问题域中实体之间的继承关系在数据库中有多种体现方式。在hibernate中&#xff0c;要实现面向对象的对实体进行持久化操作&#xff0c;那么就需要对实体类进行继承关系映射。 根据数据表的不同形态&#xff0c;映射方案有三种 实体继承关系模型&#xff1a; 1.Tpc每个具体类…

Hibernate关联关系映射_引言

类的关联关系体现在类的引用。比如在博客类中有博客评论类的引用&#xff0c;我们说这两个类是存在关联关系的。 实体类之间的引用关系&#xff08;关联关系&#xff09;由业务需求决定。比如&#xff1a;在选课系统中&#xff0c;业务需求是每个学生登陆之后都能看见自己选了那…

Hibernate关联关系映射_单边多对一

业务需求:要求查询每个学生所在的班级 实体关联&#xff1a;学生类持有班级类的引用&#xff08;省略setter getter方法&#xff09; public class Student {private Integer id; private String name; Private Classes clazz;} public class Classes {private Integer id; pri…