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地址打 ...
随机推荐
- oracle centos 静默安装
http://blog.csdn.net/tongzidane/article/details/43852705 静默安装Oracle 11G过程中提示:Exception in thread &qu ...
- 最小圆覆盖 gym-102006 I
#include<bits/stdc++.h> #define LL long long #define fi first #define se second #define mk mak ...
- 全面兼容的Iframe 与父页面交互操作
父页面 Father.htm 源码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" & ...
- Python数据分析之pandas
Python中的pandas模块进行数据分析. 接下来pandas介绍中将学习到如下8块内容:1.数据结构简介:DataFrame和Series2.数据索引index3.利用pandas查询数据4.利 ...
- js constructor 和 instanceof
说到这两个属性,那不得不说一下_proto_这个属性,通常这个属性是隐藏属性,是不允许被暴露的,而某些浏览器为了开发者能够很好的理解,而将这个属性暴露出来,比如Mozilla FireFox,这就是为 ...
- 《JAVA软件结构与数据结构》第一周学习总结
学号 20172326 <JAVA软件结构与数据结构>第一周学习总结 教材学习内容总结 软件质量的几大特性 增长函数与大O记法 大O记法用来表示表示增长函数,从而来表示算法的复杂度 算法的 ...
- WS快捷键
打开文件: Ctrl + Shift + N 打开类: Ctrl + N 打开函数: Ctrl + F12 “超级”打开: 双击 shift,可以 search anywhere. 复制整行: Ctr ...
- JQuery的源码阅读
探索原理,animation实现,一个对象可以同时绑定多个事件,这是如何实现的? (function(window, undefined) { function jQuery(selector){ r ...
- centOS7下SVN的安装和使用
1. 安装 CentOS通过yum安装subversion. # yum install subversion subversion安装在/bin目录: # which svnserve #查看目录 ...
- 2018-2019-2 20162318《网络对抗技术》Exp3 免杀原理与实践
一.实验内容 1.正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion),加壳工具),使用shellcode编程 2.通过组合应用各种技术实现恶意代码免杀(如果成 ...