struts2怎么实现页面到页面之间的传值?
我要实现一个产品订购的功能,在浏览产品的时候通过点击一个订购的链接,跳转到提交订单的页面,在跳转的同时要把浏览的产品的名称和型号传到提交订单的页面,并且把这里的订单类的产品名称和型号的表单域里赋上传递过来的值,因为只用到两个值,不想通过Action去操作,只涉及页面之间的值传递。。。
我是这样做的:
在浏览产品页面有:<a href='<s:url value="orderList_add.jsp" >
<s:param name="productName" value="%{product.productName}" />
<s:param name="typeNum" value="%{product.typeNum}" /></s:url>'>
[订购]
</a>
这里通过param把产品名称和型号传递到orderList_add.jsp页面,在orderList_add.jsp页面我用request.getParameter("typeNum")可以得到值,(虽然传递过来的中文会乱码),但却不知道怎么赋到表单域里,查资料知道Struts2的#request['typeNum']或#request.typeNum可以得到request里面的值,但用<s:property value="#request['typeNum']"/>却输不出request里的值,郁闷好几天不知怎么搞,希望大家指点下!!
问题补充:
不行,报异常!而且我还要把值赋到一个表单域里,如:<s:textfield name="productName" value=""/>,问题是怎么把值赋进来????
问题补充:
报org.apache.jasper.JasperException:/pages/orderList/orderList_right_add.jsp(34,4) According to TLD or attribute directive in tag file, attribute value does not accept any expressions
和java.lang.ClassNotFoundException异常……
问题补充:
out试过了,直接输出到页面是没问题的,但放到<s:textfield name="productName" value="<% out.print('productName')%>"/> 就不行了,value解析不出productName的值,直接把<% out.print('productName')%>输出来了。。。
问题补充:
写成
<s:textfield name="productName" value="<%=productName%>"/>
应该可以吧
结果是一样的!
谢谢指出!
难道真得用action实现啊?我再试试……
问题补充:
不想用Action是因为这里涉及的参数就两个,而且product和orderlist是两个不同的Action,在里面传来传去嫌麻烦,也是为涂省事吧,呵呵,可现在好像并不太省事……
至于用JavaScript的方法填充表单,本人没用过,能具体到代码吗?谢谢啦!!
问题补充:
js的方法我是这么做的:
<%
String proNum = request.getParameter("typeNum");
String proName = request.getParameter("productName");
out.print(proNum+"-----"+proName); %>
<script type="text/javascript">
window.onload = function (){
var parm1 = document.getElementById("proName")
parm1.value = ${proName};
var parm2 = document.getElementById("proNum")
parm2.value = ${proNum};
}
</script>
<s:textfield name="productName" id="proName"/>
<s:textfield name="orderList.typeNum" id="proNum"/>
可表单域里怎么就是没有值啊!而且在页面上用${proNum}也没值,但上面的out.print(proNum+"-----"+proName);却能输出值,这是怎么回事????
问题补充:
这样的也试过了,就是在页面用<%=pramValue%>或${pramValue}也输入出值……
不过现在问题还是解决了,还是通过jsp页面-action-jsp页面的方式把值放到request里,在最后的jsp页面用<s:textfield name="orderList.productName" value="%{#request['product.productName']}" />的方式把值最终传过来并赋到了表单的输入域里,还是这位大哥的
提醒了我,谢谢啦!不知能否留个QQ之类的,以后有问题好请教下,呵呵……
不过问题是解决了,但跟我最初的jsp页面-jsp页面传值的想法不一样,小有遗憾。。。。。在Struts里是不是根本就没有这样直接传值的方法啊???不知有没有更好的方法。。。。
问题补充:
嗯,这种才应该是Struts2提供的页面到页面传递的方法,也是我想要的,只是这种方法传递中文的时候会乱码不知怎么解决呢。。。
采纳的答案
使用 #parameters.productName,而不是 #request.productName, 完整代码如下:
浏览产品页面:
- <%@page contentType="text/html;charset=UTF-8" %>
- <%@taglib uri="/struts-tags" prefix="s"%>
- <a href='<s:url value="orderList_add.jsp" >
- <s:param name="productName" value="'a'" />
- <s:param name="typeNum" value="20" /></s:url>'>
- [订购]
- </a>
提交订单页面:
- <%@page contentType="text/html;charset=UTF-8" %>
- <%@taglib uri="/struts-tags" prefix="s"%>
- <s:textfield name="productName" value="%{#parameters.productName}"/>
struts2怎么实现页面到页面之间的传值?的更多相关文章
- struts2客户端与服务器端即jsp页面与action之间的关系
在Struts2中,客户端和服务器之间的数据传输全部要用到get.set方法:用set方法 ,可以将表单中的值存入Action类.通过Struts2.0标签,调用get方法将Action类中的结果数据 ...
- MUI APP关于页面之间的传值,plusready和自定义事件
最近在用MUI开发这个APP,发现有时候这个plusready不起作用,表现在,这个页面如果重复打开,这个plusready就进不去,然后上一个页面传过来的值,就没法接收了.这个经过MUI官方确认,是 ...
- 主页面、iframe之间调用以及传值
主页面.iframe之间的调用和传值,无非就是两个交互形式: 主页面与子页面的交互 子页面之间的交互 接下来要讲的是四种交互传值的方式:利用postMessage方法传值.DOM操作传值.URL方式传 ...
- ASP.NET 相同页面前后端之间传值
aspx页面前后端之间传值:前端的html或js获得后端的cs,后端的cs获得前端的js值. 一.前端获得后端的值 1.html元素 前端: <td><%=str%></ ...
- IOS 页面之间的传值(主讲delegate)
IOS的Delegate,通俗一点说就是页面之间的传值. 总结一下现在知道的IOS页面之间传值的方式有三种 1.使用NSNotification发送通知的传值 主要是通过NSNotificationC ...
- 微信小程序--页面与组件之间如何进行信息传递和函数调用
微信小程序--页面与组件之间如何进行信息传递和函数调用 这篇文章我会以我自己开发经验从如下几个角度来讲解相关的内容 页面如何向组件传数据 组件如何向页面传数据 页面如何调用组件内的函数 组件如何调 ...
- JS中iframe子页面与父页面之间通信
iframe子页面与父页面通信根据iframe中src属性是同域链接还是跨域链接,通信方式也不同. 一.同域下父子页面的通信 父页面parent.html <html> <head& ...
- Web设计中打开新页面或页面跳转的方法 js跳转页面
Web设计中打开新页面或页面跳转的方法 一.asp.net c# 打开新页面或页面跳转 1. 最常用的页面跳转(原窗口被替代):Response.Redirect("newpage.aspx ...
- Web设计中打开新页面或页面跳转的方法
一.asp.net c# 打开新页面或页面跳转 1. 最常用的页面跳转(原窗口被替代):Response.Redirect("newpage.aspx"); 2. 利用url地址打 ...
随机推荐
- Signalr信息推送
前序 距离上次写文章,差不多已经大半年了.感觉自己越来越懒了,即使有时候空闲下来了,也不想动.前面买了一系列的Python的书,基础的看了大概有四分之一,剩下的基本上还未动,晚上回去也只是吃饭看电影. ...
- 【POJ】2069.Super Star
题解 求一个最小的半径的球,包括三维平面上所有的点,输出半径 随机移动球心,半径即为距离最远的点,移动的方式是向离的最远的那个点移动一点,之后模拟退火就好 代码 #include <iostre ...
- codeforces 286 E. Ladies' Shop (FFT)
E. Ladies' Shop time limit per test 8 seconds memory limit per test 256 megabytes input standard inp ...
- 基于TensorFlow Serving的深度学习在线预估
一.前言 随着深度学习在图像.语言.广告点击率预估等各个领域不断发展,很多团队开始探索深度学习技术在业务层面的实践与应用.而在广告CTR预估方面,新模型也是层出不穷: Wide and Deep[1] ...
- shell date time
In Bash: get year-month-day from date DATE=`date +%Y-%m-%d`get year-month-day hour:minute:second fro ...
- Top 5 SSH Clients for Windows (Alternatives of PuTTY)
这篇博文列举了可以替代putty的5个工具,有些实现了putty没有实现的一些功能.如下: PuTTy is the most popular SSH clients for Windows-base ...
- navicat premium 的使用——navicat 连接MySQL数据库
最近,在学习navicat premium这款第三方软件,他是一个三方数据库管理软件,在前一段时间实习的时候,我使用这款软件调用过服务器上的数据库,不过,当时并没有仔细研究,再次遇到这个软件,我决定仔 ...
- CF696B Puzzles 期望
显然可以树形$dp$ 令$f[i]$表示$i$号节点的期望时间戳 不妨设$fa$有$k$个子节点,对于$i$的子节点$u$,它是第$j(1 \leqslant j \leqslant k)$个被访问的 ...
- ksyun主机挂载ksyun硬盘
1.查看虚拟磁盘的设备号是 /dev/vdc ls /dev/vd*2.格式化块设备,强烈推荐ext4文件系统: mkfs.ext4 /dev/vdc 3.准备挂载点,建立挂载目录.例: mkdir ...
- Linux 下安装软件包的方法
Linux应用软件的安装包有三种: 1) tar包,如software-1.2.3-1.tar.gz.它是使用UNIX系统的打包工具tar打包的. 2) rpm包,如software-1.2.3-1. ...