在没有使用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>
例子:
<!--action是action的名字,为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="/webapps/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>
相关推荐
如果想要调用Action,应该使用Struts2的标签库,如`<s:actionexecute/>`或`<s:redirect/>`。 解决“no found”问题的步骤可能包括检查上述所有方面,确保配置正确、路径无误、拦截器没有干扰,以及web.xml的错误...
2. <s:url></s:url>-----创建url ___________________________________________________ struts2框架的标签库分为三类: 用户标签:生成HTML元素 非用户标签:数据访问、逻辑控制等。 AJAX标签:支持...
### Struts2中的S标签详解 #### 一、概述 Struts2框架是Apache软件基金会下的一个开源项目,它提供了一种基于MVC(Model-View-Controller)设计模式的Web应用开发框架。Struts2提供了丰富的标签库,其中“S标签”...
在Action或者JSP页面中,可以通过`<s:text>`标签来引用这些资源,实现动态显示不同语言的文本。 类型转换(Type Conversion)是Struts2的一项重要特性,它能自动将请求参数转换为Action属性的预期类型。例如,用户...
而在 Struts2 中,所有的标签都被统一管理,并通过在 JSP 文件头部声明 `<%@ taglib prefix="s" uri="/struts-tags" %>` 来启用 Struts2 的标签库。这种方式简化了开发过程中的配置工作,使得开发者可以更加专注于...
<s:a href="%{url}">链接文字</s:a> ``` - **解释**:`%{url}`将被替换为实际的URL路径。 ##### 2. `<s:action>` 执行Action标签 - **用途**:执行一个Action。 - **示例代码**: ```xml <s:action name=...
- **数据传递**: 在向Action传递数据时,推荐使用`<s:textfield>`等Struts2标签,以利用其内置的数据绑定机制。 - **属性显示**: 显示Action中的属性值时,使用`<s:property>`标签以提高代码的可读性和可维护性。 - ...
在上述代码中,`<s:iterator>`遍历Action中返回的`users`集合,`<s:property>`显示属性值,`<s:url>`创建链接,`<s:form>`定义表单,`<s:textfield>`为表单字段,`<s:submit>`用于提交表单。 通过Struts2的标签库,...
- `<s:action>`:用于调用Struts2的动作,可以传递参数。 - `<s:if>`和`<s:else>`:条件语句,用于控制页面逻辑。 - `<s:iterator>`:迭代标签,用于遍历集合对象,如List、Set等。 - `<s:property>`:显示对象...
例如,`<s:form>`、`<s:textfield>`等标签用于构建表单,`<s:actionexecute>`用于调用Action。 4. **国际化与本地化支持**:`struts-i18n-x.x.x.jar`包含国际化和本地化资源,使得应用能够根据用户的语言和地区提供...
除了`<s:textfield>`,Struts2还提供了多种表单标签,如`<s:password>`用于创建密码输入框,`<s:textarea>`用于创建多行文本输入框,`<s:radio>`和`<s:checkbox>`用于创建单选按钮和复选框,以及`<s:select>`用于...
- `<s:url>`:生成URL,支持动态参数。 在使用Struts2标签时,还需要注意以下几点: - 标签的命名空间:通常以`s:`开头,表明来自Struts2标签库。 - 属性绑定:许多标签都允许通过`value`属性绑定到Action的属性。...
6. 使用`<s:url>`和`<s:a>`标签生成URL和超链接时,参数通过`s:param`标签添加。 #### 四、总结 通过以上介绍,我们可以看到Struts2提供的标签库非常强大,可以帮助开发者更加便捷地实现各种功能需求。合理利用这些...
6. 动态URL构建和超链接创建,`<s:url>`和`<a href>`标签组合使用效果最佳。 7. `set`标签用于变量存储,注意指定正确的范围。 以上标签的正确使用能显著提升Struts2应用的开发效率和性能。通过理解并掌握这些标签...
`<s:a>` 相当于HTML的 `<a>` 标签,但提供了与Struts2框架的集成,可以动态生成URL。`<s:action>` 则用于在页面上触发一个特定的Action。 B. `<s:bean>`: 此标签类似于Struts1中的JavaBean引用,但在Struts2中并不...
此外,Struts2表单标签还可以与其他标签结合使用,如`<s:actionerror>`、`<s:fielderror>`和`<s:property>`,以显示验证错误信息或动态显示数据。`<s:actionerror>`显示全局错误,`<s:fielderror>`显示特定字段的...
本文将深入讲解Struts2的标签,特别是`<s:a>`和`<s:action>`这两个重要的标签。 1. `<s:a>`标签: `<s:a>`标签用于创建HTML超链接,它可以与Action进行交互,提供更丰富的功能。在示例代码中,`<s:a href="login....
<tr><td width="70">出生时间:</td><td><s:datetimepicker name="xs.cssj" id="cssj" displayFormat="yyyy-MM-dd"></s:datetimepicker></td></tr> <tr><td>备注:</td><td><s:textarea name="xs.bz" label="备注">...
编号为:<s:property value="#n.id"/> <s:textfield name="news.title" value="%{#n.title}"></s:textfield><br> 主体:<s:textfield name="news.body" value="%{#n.body}"></s:textfield><br> 提交时间:<s:...
13. `<s:if>`, `<s:elseif>`, `<s:else>`:条件判断标签,如`<s:if test="%{condition1}">...<s:elseif test="%{condition2}">...<s:else>...</s:else></s:elseif></s:if>`,可以用来根据表达式的真假执行不同的代码...