0 0

为什么Action的属性有时访问不到?5

struts2.2.1 tomcat 6.0.35

有一个继承ActionSupport的HelloAction类,具有message和password两个属性,并添加了相应的GetMessage,SetMessage;SetPassword,GetPassword;方法,在execute()中执行了SetMessage("Hello"),SetPassword("no");

但在HelloAction.jsp中通过调用下面的代码,message属性能显示,可password属性却无法显示。
<h2>${message}, ${password}</h2>

2012年8月29日 13:52

7个答案 按时间排序 按投票排序

0 0

采纳的答案

哥们犯个低级性错误,get set 生成有问题
getPassword
纠正get set 方法,应该
this.message="Hello";
this.password="Hello";
setMessage("Hello"),setPassword("no");
2种jsp都可以显示的。

2012年8月29日 14:28
0 0

涉及到了封装的概念了,java中用private来对属性进行,使外界不可直接操作属性(安全问题);通过public声明一个外界可以访问的方法,规范写法为小写的get和set后面用驼峰标识

2012年8月30日 09:31
0 0

直接用IDE自带的source生成工具生成setter和getter,(右键菜单Source选择generate getters and setters),可以避免手写代码函数名不符合struts要求的问题。

2012年8月29日 16:44
0 0

1.请确定你的get,set方法是否正确,如果确定正确,执行步骤2
2.在hello.jsp中引入<%@taglib prefix="s" uri="/struts-tags" %>
使用<s:debug></s:debug>标签查看是否正确,检查是否将password信息是否放置在相应的作用范围,确定问题。

检查范围依次为:
page---->request(原始request---->struts值栈的栈区----->struts值栈的上下文区)----->session----->application

你的action默认是在struts值栈的栈区的,按理说,如果按照【1】的配置方式是可以取到的。

2012年8月29日 16:42
0 0

get/set方法写错了
getMessage(),setMessage()
首字母小写~~~

2012年8月29日 14:24
0 0

1、struts的action数据能被页面访问到:
AAction {
    public String password;//public的字段可以被OGNL访问
}

AAction {
    private String password;

    public String getPassword() {//getter方法也可以访问
         return this.password;
    }
}

2、${password} 不作用域将按照如下顺序进行查找:
page---->request(原始request---->struts值栈的栈区----->struts值栈的上下文区)----->session----->application

你的action默认是在struts值栈的栈区的,按理说,如果按照【1】的配置方式是可以取到的。

3、问题
难道你的get方法写错了?
或者 【page---->request(原始request---->】这块用password 但是为空?


4、你可以通过s:debug 查看值栈
注:s:debug 将通过getter方法查找数据进行展示, public的字段是不展示的;

2012年8月29日 13:59
0 1

直接
this.message="Hello";
this.password="Hello";
还有一点,记得属性是private的

2012年8月29日 14:00

相关推荐

    详解Struts2中Action访问Servlet API的几种方法

    然而,有时我们需要在Action中直接操作Servlet API,例如访问HttpServletRequest、HttpSession和ServletContext等对象。本文将详细解析三种在Struts2 Action中访问Servlet API的方法。 **方法一:IOC方式(推荐)**...

    Struts2 的Action使用session的方法

    通常,我们会在Action类上使用`@SessionAttributes`注解,这样Spring MVC会自动为我们管理session属性。对于Struts2,我们不需要使用Spring的注解,而是直接在Action方法中获取session。 2. **获取session**:在...

    struts2中action如何获取jsp页面参数1.pdf

    由于ActionContext的实例在Action执行时才创建,因此不建议在Action的构造函数中使用`ActionContext.getContext()`,因为此时ActionContext可能尚未初始化。 总的来说,在Struts2中,Action类可以通过...

    访问网站的参数传递代码

    2. **HTML表单提交**:通过`&lt;form&gt;`元素的`action`属性指定处理请求的服务器端脚本,`method`属性设置为`GET`。提交表单时,表单字段会转换成查询字符串附加到URL。 **二、POST方式的参数传递** 1. **HTTP请求**:...

    跨进程通讯--访问其他应用程序的ActivityDemo

    但有时我们可能需要在不同的应用之间交换数据或者调用其他应用的功能,这就涉及到了"跨进程通讯"。本教程将重点讲解如何实现访问其他应用程序的Activity。 一、跨进程通讯基础 跨进程通讯(Inter-Process ...

    给另一个窗口的控件属性赋值的方法.zip_-baijiahao_C#_aboardo3t_copperj3s_窗口

    在C#编程中,有时我们需要在程序中操作或修改另一个窗口的控件属性,这通常是跨线程或者在多窗口应用中的需求。本教程将详细解释如何实现这一功能,并通过一个具体的实例来演示。 首先,我们需要理解Windows应用...

    struts1与struts2的区别

    - **Struts2**:Action不直接依赖于容器,而是通过简单的Map表示Servlet上下文,增强了可测试性。Action仍能访问原始请求和响应,但框架鼓励避免直接依赖。 4. **测试性**: - **Struts1**:由于直接使用Servlet ...

    struts面试宝典

    - **path属性**:指定请求访问Action的路径。 - **type属性**:指定Action的完整类名。 - **name属性**:指定需要传递给Action的ActionFormBean。 - **scope属性**:指定ActionFormBean的存放范围。 - **attribute...

    strusts1和struts2的区别及工作原理

    相比之下,Struts2 Action不依赖于容器,可以独立测试,虽然仍能访问请求和响应,但减少了直接依赖。 5. **可测试性** - Struts1的Action由于直接暴露了Servlet API,测试时需要依赖容器。而Struts2 Action可以...

    Android访问WCF服务源码(WCF服务端)

    在Android开发中,有时我们需要与远程服务器进行交互,获取或发送数据。WCF(Windows Communication Foundation)是微软推出的一种面向服务的通信框架,用于构建高度互操作的、面向服务的应用程序。本篇将深入探讨...

    struts2详细讲解,JQuery,类型转换和OGNL

    比如,我们可以在JSP页面上直接使用OGNL表达式来访问Action的属性,或者在Action的Result配置中,利用OGNL来决定跳转到哪个页面。此外,OGNL还可以在拦截器中使用,进行复杂的条件判断和业务逻辑处理。 总的来说,...

    struts2 向结果传参数

    这里,`myValue`是Action中的一个属性,`myParam`将是JSP页面中可以访问的参数。 2. **使用Action类的属性** 在Action类中,你可以设置需要传递的属性,并在JSP中通过OGNL表达式访问。例如: ```java public ...

    Struts常见错误汇总

    此错误通常出现在尝试调用 Action 时找不到对应的 ActionMapping 或 ActionForm Bean。这可能是因为配置文件 `struts-config.xml` 中未正确配置相关的 Action 或 ActionForm Bean。 **解决方案:** 1. **检查配置...

    struts2总结

    - **DTD引用**:在`struts.xml`中,DTD(文档类型定义)用于验证配置文件的语法,但有时可能会遇到网络问题导致无法访问。为解决此问题,可以下载所需的DTD文件到本地,并在MyEclipse的XML Catalog设置中指定本地...

    Struts2 框架搭建(基本)和几个报错问题

    2. **Class not found**:如果出现找不到Action类的错误,确认Action类的包名和路径是否正确,以及是否已编译并放入类路径。 3. **404 Not Found**:可能是URL不正确或者Web.xml配置有问题。检查Action的命名、...

    struts2 interceptor介绍

    在实际开发中,有时会遇到拦截器修改Action属性或设置请求对象属性后,在页面上无法反映的问题。这是因为一旦`ActionInvocation.invoke()`被执行,不仅Action会被调用,其后的Result也会启动,这意味着控制权已经...

    asp.net mvc 上传图片到数据库

    在ASP.NET MVC框架中,将图片上传到数据库是常见的需求,尤其在构建具有用户交互功能的网站时。本文将深入探讨如何使用C#语言来实现这个功能。 首先,我们需要了解ASP.NET MVC的基本概念。ASP.NET MVC(Model-View-...

    struts2中OGNL的一些概念及原理说明

    - **转换为字符串**:有时需要将OGNL表达式的结果转换为字符串形式,这时可以通过Struts2的标签来实现这一功能。 - **访问Java对象的普通方法**:OGNL支持直接调用对象的方法。 - **访问静态方法**:除了实例方法...

    详解Tomcat出现404的解决方法

    HTTP状态404 - 未找到表示源服务器找不到你请求的资源,或者该资源不存在或者已被移除。在Tomcat中,这可能是由于Servlet或JSP文件的路径设置不正确导致的。 当遇到404错误时,第一个可能的原因是浏览器无法直接...

Global site tag (gtag.js) - Google Analytics