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地址打 ...
随机推荐
- C#和PHP 长整型时间互转
//2018/5/14 16:03:05转换:1526284985 public static double ConvertToDouble(DateTime date) { , , )); var ...
- Keras中RNN不定长输入的处理--padding and masking
在使用RNN based model处理序列的应用中,如果使用并行运算batch sample,我们几乎一定会遇到变长序列的问题. 通常解决变长的方法主要是将过长的序列截断,将过短序列用0补齐到一个固 ...
- openfire 部署后报错: java.lang.IllegalArgumentException: interface xx is not visible from class loader
该异常是创建代理时加载接口的类加载器与创建时传入的不一致. 在本地eclipse做openfire二次开发,本地运行没错,部署到服务器上后报异常: java.lang.IllegalArgument ...
- Bootstrap--响应式表格布局
<div class="row"> <div class="col-sm-2 col-md-2" style="min-height ...
- 黑马程序员_java基础笔记(07)...IO流
—————————— ASP.Net+Android+IOS开发..Net培训.期待与您交流!—————————— IO(InputStream,outputStream)字节流 (Reader,Wr ...
- ref:Mysql授权远程登陆
ref:https://blog.csdn.net/qq_26710805/article/details/79776897 在Windows环境上操作.步骤如下: 1. 打开cmd窗口,登陆mysq ...
- QT STUDY 模型-视图-控制器
- Could not get constructor for org.hibernate.persister.entity.SingleTableEntityPersister报错解决办法
在做Hibernate框架数据库的关联关系映射练习中出现了Could not get constructor for org.hibernate.persister.entity.SingleTabl ...
- JQuery的源码阅读
探索原理,animation实现,一个对象可以同时绑定多个事件,这是如何实现的? (function(window, undefined) { function jQuery(selector){ r ...
- Javascript中call方法和apply方法用法和区别
第一次在博客园上面写博客,知识因为看书的时候发现了一些有意思的知识,顺便查了一下资料,就发到博客上来了,希望对大家有点帮助. 连续几天阅读<javascript高级程序设计>这本书了,逐渐 ...