超链接请求action传值

关于<html:link>标签在URI后面传参数的问题2007-09-21 09:01关于<html:link>标签在URI后面传参数的问题在struts标签<html:link>的page属性指定的URI后面传递参数可以有几种方式: 1.若明确参数名和参数值则直接在URI后输出,
如:<html:link page="/test.do?action=add">add</html:link>

2.对于参数值不确定的,paramName和paramProperty来输出,用paramId属性指定参数名。
对于paramName指定的对象应该存在于page、request、session、application其中之一。一般来说,是从Action类传过来的,作为request的属性之一(requst.setAttribute("name",object))。
如果paramName指定的对象是action的ActionForm,则无需使用request.setAttribute方法。
例:<html:link page="/test.do" paramId="userid" paramName="uid">uname</html:link>
若参数值是一个bean对象的属性值(比如ActionForm,或者集合中存放的对象)则:
<html:link page="/test.do" paramId="userid" paramName="user" paramProperty="uid">uname</html:link>

3.若两个参数,一个确定一个不确定,则是以上两种方法的结合,即:
<html:link page="/test.do?action=modify" paramId="userid" paramName="uid">modify</html:link>

4.对于多个参数的问题,可以使用一个HashMap集合对象来存放所有的参数名及对应的参数值的方式,paramName属性值指定为该HashMap集合对象即可。
举例:
<%
//代码理想的位置应该是在action中
//可以在jsp页面测试
    java.util.HashMap pms = new java.util.HashMap();
    pms.put("code", "001002");
    pms.put("name", "tester");
    pms.put("alias", new String[]{"matin","jack"});
    request.setAttribute("params", pms);
%>
<html:link action="/test.do" name="params" >test</html:link>
编译后的结果:<a href="/test.do?code=001002&name=tester&alias=matin&alias=jack">test</a>
这种方式虽然可以解决传多参数的问题,但是实现起来也比较麻烦,特别是对记录集中的数据逐条列出的时候

5.针对有的网友在<html:link>标签中嵌入使用jsp脚本(scriptlet)的问题,
例如:
<html:link page="/test.do?code=<%=varible%>">add</html:link>,这种写法是错误的,是无法编译的。
有的网友认为在struts标签内是不允许使用jsp脚本的,这种说法也不准确。如果前面的写法改成:
<html:link page="<%="/test.do?code="+varible%>">add</html:link>,就可以被执行,但是要注意URL相对路径的问题。

虽然在struts标签中嵌入jsp脚本不是真正意义上的struts应用,但是有时在委曲求全的情况下也只能如此了,除非使用自定义标签。

时间: 2024-07-31 08:03:11

超链接请求action传值的相关文章

超链接请求两次action

问题描述 超链接请求两次action 我是用java mail 发送邮件 邮件内容有个 标签连接到我的项目 但是每次都访问两次action 从outlock或网页版163上点击 都是走两次 单独把连接复制到浏览器里 就请求一次 谁碰到过,在线等大神. 解决方案 你看看是不是再点击按钮提交的同时也触发了表单的submit事件 解决方案二: 邮件内容里没有表单内容,就是一个html table 什么也没有了.

a标签-超链接跳转传值问题怎么解决?

问题描述 超链接跳转传值问题怎么解决? 例如:"中国"是个超链接,点击"中国"后,跳转到另外一个网页,并把"中国"传到这个网页上. 有哪些方法啊?谁知道? 解决方案 你得让要跳转的网页接收 解决方案二: 解决超链接中文乱码问题ASP.NET画面跳转实现及其传值问题解决方案关于jsp中超链接跳转进行传值时出现乱码的解决方法 解决方案三: <a href="xxxxx?s=中国">中国</a> 解决方案四:

如何用请求字符串传值给用模式窗口打开的aspx页面

请求|页面|字符串|请求|字符串 模式窗口是一种方便的当前页面扩展的方式,但是aspx文件只能作为HTM文件的IFRAME才能用这种方式调用.同时,请求字符串也是一种方便常用的页面间传值的方法,那么怎么样使两者给合起来,就是实现如何用请求字符串传值给用模式窗口打开的aspx页面呢? 我们可以用JS脚本实现这种功能: 1.调用页面代码: <script language="javascript"> function GetCorrelativeItemId() { rdl =

url-ajax json 向action传值的问题

问题描述 ajax json 向action传值的问题 方式1.var name = $("#username").val(); $.ajax({ url: "<%=path%>/user/checkName?name="+name, type: "get", async: false, dataType: "json", success: function(checkName_ok){ alert("s

javaweb-jsp往action传值,(struts2)

问题描述 jsp往action传值,(struts2) <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@page import="cn.syau.dao.StudentgradeDao,com.syau.javabean.Grade"%> <!DOCTYPE HTML PUBLIC "-//W

ajax请求action后,数据存放在session中,jsp页面通过el获取数据,可是第一次登录总

问题描述 ssh项目中,我需要登陆某个页面(如a.jsp),通过onload来触发js函数(函数是ajax请求)请求到相应的action,处理完成后将数据存放到session对象里面,然后在a.jsp中用el表达式获取想要的数据,这是我的设计思路.可是问题来了,不知道为什么在打开浏览器第一次登录a页面时,a页面不会显示想要的数据,刷新后就有数据了,之后也正常.这是为什么了???我该如何解决这个问题了?或有什么好的办法可以实现登陆一个页面,页面上数据是从服务器端获取的,的方法吗? 解决方案 解决方

$.ajax()请求Action方法

问题描述 Struts2+hibernate3.2+spring2.0:$.ajax()请求Action方法,开始一直可以请求,也能正常返回.后来在别的Action中添加一个属性,在applicationContext.xml中配置了一下,我再次请求登录的那个Action方法时,既不请求,也不返回,根本就没走进Action.以前曾遇到过一次这个问题,但是我重新建一个Action,却好了,这次又遇见了,总这样也不是个办法,哎--,郁闷好久了,一直不明什么原因,请各位多多指点. 解决方案 解决方案二

利用ajax从jsp页面向Action传值的一个错误,求解惑...

问题描述 错误类型:ERRORcom.opensymphony.xwork2.interceptor.ParametersInterceptor-ParametersInterceptor-[setParameters]:UnexpectedExceptioncatched:Errorsettingexpression'customer.name'withvalue'[Ljava.lang.String;@1dd40f3';情况描述:1:框架:Struts2+Spring+ibatis;2:表单

js通过地址栏给action传值(中文乱码全是问号)_javascript技巧

前几天在完成一个ssh框架的项目时遇到一个小问题,情况是这样的. 在action中定义了私有变量,并提供get(),set()方法,js代码中就应该可以访问它.于是我从js代码中通过地址栏传值给了action的相应变量,但是,如果变量值为中文的时候,在action中测试输出则为"???",而浏览器地址栏中仍然能显示中文. 我先根据网上一些解答配置了tomcat的配置文件,未果.后来想想也许不是什么复杂的问题,应该就是编码问题.我的myeclipse和项目的编码都设置为的"UT