关于struts2中Action向页面传值的问题

steven30832 2010-07-07 07:00:23
我在网上看到一个小例子。
实现一个加法的对struts2的应用。

那个地方有三个页面,一个是提供输入加数被加数的页面,还有两个是输出结果(整数、负数)的页面,第一个页面的表单中用了action=“xxxx”来和action匹配,但是跳转后的页面并没有给出任何和后台Action匹配的东西。但是s:property就能直接从Action中读取到值来显示,这个原理是怎么样的啊?

如果我想在一个页面中引用后台某一个Action中的成员变量,应该怎么去匹配啊?

小例子的网页。。。
http://www.360doc.com/content/08/0727/10/70655_1475254.shtml
...全文
870 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
望仔 2010-07-08
  • 打赏
  • 举报
回复
我也是不知所云
过往记忆 2010-07-08
  • 打赏
  • 举报
回复

不止所云
steven30832 2010-07-08
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 silence_smile 的回复:]
引用 8 楼 steven30832 的回复:

引用 4 楼 izard999 的回复:
引用楼主 steven30832 的回复:
但是跳转后的页面并没有给出任何和后台Action匹配的东西。但是s:property就能直接从Action中读取到值来显示,这个原理是怎么样的啊?
这个是因为, 在访问action的时候,struts2的那个核心过滤器会产生action的环境, 然后把a……
[/Quote]

我的意思是。。如果我的页面。。想从随便某一个Action(控制跳转到这个页面的Action)读取数据的话。。怎么让我的页面和那个Action匹配起来?什么都不用么?
my_espace 2010-07-08
  • 打赏
  • 举报
回复
值默认保存到request里面了
izard999 2010-07-07
  • 打赏
  • 举报
回复
拦截器只是负责填充请求参数,它并不会把action压入栈顶.. 在页面中显示action的属性跟拦截器没什么关系.! 完全是过滤器里面执行Action的时候做的事情!
licip 2010-07-07
  • 打赏
  • 举报
回复
这是通过拦截器来实现的。
波哥Polly 2010-07-07
  • 打赏
  • 举报
回复
这就是个带参数的action 把这个变量在页面隐藏传值,然后在跟在action后面
izard999 2010-07-07
  • 打赏
  • 举报
回复
[Quote=引用楼主 steven30832 的回复:]
但是跳转后的页面并没有给出任何和后台Action匹配的东西。但是s:property就能直接从Action中读取到值来显示,这个原理是怎么样的啊?[/Quote]
这个是因为, 在访问action的时候,struts2的那个核心过滤器会产生action的环境, 然后把action压入ognl根对象ValueStack的栈顶, 而<s:property>在检索属性的时候, 是从栈顶往下逐一扫描, 以扫描到的第一个属性为准(这里说的属性是javaBean的属性,而非private字段).! 所以可以经过action而跳转到的jsp页面上是可以直接访问到action的属性的!
simaa0106 2010-07-07
  • 打赏
  • 举报
回复
action里面的成员变量必须有get,set方法。在页面中要有相对应的key来取。
<s:form action="login.action">
<table width="30%" align="center">
<tr>
<td>
<s:text key="username" label="USERNAME" />
</td>
</tr>
<tr>
<td>
<s:password key="password" label="PASSWORD" />
</td>
</tr>
<tr>
<td>
<s:submit value="确定" />
</td>
</tr>
</table>
<table width="30%" align="center">
</table>
</s:form>
happyfmy 2010-07-07
  • 打赏
  • 举报
回复
[Quote=引用楼主 steven30832 的回复:]
我在网上看到一个小例子。
实现一个加法的对struts2的应用。

那个地方有三个页面,一个是提供输入加数被加数的页面,还有两个是输出结果(整数、负数)的页面,第一个页面的表单中用了action=“xxxx”来和action匹配,但是跳转后的页面并没有给出任何和后台Action匹配的东西。但是s:property就能直接从Action中读取到值来显示,这个原理是怎么样的啊?

如果我想在……
[/Quote]

<s:property value="sum"/>
action中有getSum()函数 就能匹配读取值


只要在action中定义这个成员变量 set/get 页面中去同样的name
Silence_Smile 2010-07-07
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 steven30832 的回复:]

引用 4 楼 izard999 的回复:
引用楼主 steven30832 的回复:
但是跳转后的页面并没有给出任何和后台Action匹配的东西。但是s:property就能直接从Action中读取到值来显示,这个原理是怎么样的啊?
这个是因为, 在访问action的时候,struts2的那个核心过滤器会产生action的环境, 然后把action压入ognl根对象ValueStack的栈……
[/Quote]
Action中的属性,只要由get方法,页面可以直接取到的
Silence_Smile 2010-07-07
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 izard999 的回复:]

引用楼主 steven30832 的回复:
但是跳转后的页面并没有给出任何和后台Action匹配的东西。但是s:property就能直接从Action中读取到值来显示,这个原理是怎么样的啊?
这个是因为, 在访问action的时候,struts2的那个核心过滤器会产生action的环境, 然后把action压入ognl根对象ValueStack的栈顶, 而<s:property>在检索属性……
[/Quote]
+1 解释的很到位了
weir_威尔 2010-07-07
  • 打赏
  • 举报
回复
这就是个带参数的action 把这个变量在页面隐藏传值,然后在跟在action后面
steven30832 2010-07-07
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 izard999 的回复:]
引用楼主 steven30832 的回复:
但是跳转后的页面并没有给出任何和后台Action匹配的东西。但是s:property就能直接从Action中读取到值来显示,这个原理是怎么样的啊?
这个是因为, 在访问action的时候,struts2的那个核心过滤器会产生action的环境, 然后把action压入ognl根对象ValueStack的栈顶, 而<s:property>在检索属性的时……
[/Quote]

那如果我想让页面能从一个我想要的Action里面读取数据,要怎么来做映射呢?

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧