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地址打 ...
随机推荐
- Dev控件删除按钮的两种方式
测试版本15.2.10:在Dev控件中删除按钮空间有两种方式:1.鼠标右键出现Delete选项,这种删除是不完全的删除,只是删除了按钮的显示,实际上按钮还是存在于代码中的.2.用键盘上的Delete键 ...
- input文本框 输入限制三则
其一,只允许输入数字和小数点. <input onKeypress="return (/[\d.]/.test(String.fromCharCode(event.keyCode))) ...
- Codeforces Round #248 (Div. 1) C - Tachibana Kanade's Tofu AC自动机
C - Tachibana Kanade's Tofu 思路:把 n 个串丢进AC自动机中,然后dp就好啦. 我的代码居然是在CF上跑最快的.. #include<bits/stdc++.h&g ...
- 【基础知识】ASP.NET[基础一(ashx)]
一.ASP.NET介绍 1.ASP.NET包括: 一般处理程序(ashx):WebForm ( aspx ):MVC(Model view con~~): 2.ASP.NET的常用文件(重点): 1& ...
- Kubernetes网络模型概念
Kubernetes网络模型 Kubernetes网络模型设计的一个基础原则是:每个Pod都拥有一个独立的IP地址,而且假定所有Pod都在一个可以直接连通的.扁平的网络空间中.所以不管它们是否运行在同 ...
- 在Windows上安装FFmpeg程序
原文地址:http://helloway.blog.51cto.com/7666282/1642247 FFmpeg是一套可以用来记录.转换数字音频.视频,并能将其转化为流的开源计算机程序.它提供了录 ...
- 选择排序之Java实现
选择排序之Java实现 一.方法一 package cn.com.zfc.lesson21.sort; /** * * @title SelectSort * @describe 选择排序 * @au ...
- Qt Quick快速入门之qml与C++交互
C++中使用qml对象,直接使用findChild获取qml对象,然后调用setProperty方法设置属性,当然必须在加载qml之后才能使用,不然findChild找不到对象,用法如下. engin ...
- Struts2 (上)
Struts2简介 Struts2框架的作用 Struts2是一个基于MVC设计模式的Web应用框架 它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controlle ...
- UOJ275 组合数问题
给定n,m和k,求有多少对(i , j)满足0 ≤ i ≤ n, 0 ≤ j ≤ min(i ,m)且C(︀i,j)︀是k的倍数.n,m ≤ 1018, k ≤ 100,且k是质数. 把i和j都看成k ...