问题描述:
前台提交的参数user.userName=df&user.password=PPW 但是后台的Action只解析到了userName属性。
参数提交形式:
http://localhost/easyGrow/web/admin/login.action?user.userName=df&user.password=PPW
struts配置:
<package name="authentication" namespace="/web/admin" extends="struts-default"> <action name="login" class="LoginAction" method="doLogin"> <result name="success" type="redirect" >/index.jsp</result> <result name="login">/login.jsp</result> </action> </package> |
LoginAction 如下:
private User user = null; public void setUser(User user) { this.user = user; }
public String doLogin(){
print(user);
return SUCCESS; } |
User类如下:
private int id = 0;
private String userName = "";
private String password = "";
public 的get,set方法就不贴出来了。 |
问题:
当请求提交的时候,后台打印的时候只能打印出user.userName的值df,
分析:
既然userName已经解析到,为什么password就解析不到呢!怎么也想不通啊,呵呵。。。
RootCause:
最后无意中发现,如果在LoginAction中声明User的时候,改用public,就可以全部解析到了。
分析:
如果是访问限制的问题,那用private修饰的时候,userName也应该解析不到啊!
相关推荐
本篇文章将深入探讨“Struts的request包装替换的思想”,以及如何通过自定义Filter来实现这一过程。 在标准的Struts框架中,HttpServletRequest对象被用来处理HTTP请求。然而,出于一些特定需求,例如日志记录、...
如果intercept方法抛出异常,则Struts2框架将捕获异常并包装成一个错误结果码。 参数Map 在Struts2框架中,参数Map是一个非常重要的对象,它存储了所有的请求参数。在intercept方法中,获取参数Map的目的是为了...
Struts2提供了一个名为`ServletActionContext`的类,它包装了`HttpServletRequest`和`HttpServletResponse`对象。在Action中,你可以通过`ServletActionContext`获取这些对象,如: ```java HttpServletRequest ...
在Struts2中,当请求到达时,框架会创建一个代理对象来包装原始的Action对象。这个代理对象会在调用Action的方法之前先调用拦截器的方法,执行相应的前置处理;在Action的方法执行完成后,再调用拦截器的后置处理...
Struts2和Hibernate是两种非常流行的Java开源框架,它们分别用于MVC(Model-View-Controller)架构的控制层和数据持久化层。Struts2是Apache软件基金会下的一个项目,它提供了强大的动作调度和视图渲染功能,而...
Struts2是一个流行的Java Web应用程序框架,它基于MVC(模型-视图-控制器)设计模式,用于构建可维护性和可扩展...通过使用这些包装类,我们可以更好地理解和操作Struts2框架的核心配置,从而提升开发效率和代码质量。
Struts2是一个强大的Java web应用程序框架,用于构建MVC(模型-视图-控制器)架构的应用。本教程将深入探讨如何结合IntelliJ IDEA(一个流行的Java开发集成环境)来高效地开发Struts2项目。 首先,让我们从“第一章...
1. **包装设计**:在Struts2中,包装设计主要用于处理用户请求和数据绑定。例如,ActionSupport类是大多数Action类的基础,它提供了一种将HTTP请求参数自动绑定到Action实例属性的方法,实现了数据封装和验证。 2. ...
4. **Action执行**:当确定了具体的Action后,Struts2框架会创建该Action的实例,并根据请求参数填充Action中的属性。之后,调用Action的`execute()`方法来执行业务逻辑。 5. **结果处理**:Action执行完成后,会...
Struts2内建了一套类型转换机制,可以自动将字符串转换为以下基本类型:boolean、char、int、long、float、double、Date以及它们对应的包装类。此外,它还可以处理数组和集合,如ArrayList、LinkedList等。例如,...
- **struts.properties**:全局配置文件,可以设置Struts2的基本属性,如默认的Action包装器、主题样式等。 3. **结果类型(Result)** - Struts2支持多种结果类型,如dispatcher(重定向或转发到一个JSP页面)、...
Struts2的拦截器机制允许我们插入自定义的处理逻辑,例如,可以编写一个拦截器来处理分页参数,统一处理分页请求,提高代码复用性。 **总结** "struts2的mvc 含简单的分页"这个实例展示了如何在Struts2框架下,结合...
默认情况下,Struts2提供了一些内置的Converter,可以处理基本数据类型及其包装类。 1. 自动类型转换:当用户提交表单数据时,Struts2会自动尝试将请求参数与Action类的属性进行匹配,并使用内置的Converter进行...
2. **Action类处理**:在Struts2的Action类中,我们需要定义一个或多个字段来接收上传的文件,这些字段必须是`java.io.File`类型的属性,或者其包装类`org.apache.struts2.util.FileWrapper`。同时,对应的表单字段...
- **Bean包装**:用于自动绑定请求参数到Action类中的属性。 - **类型转换**:如何将请求中的字符串转换为特定的数据类型。 - **验证**:如何在提交表单前验证用户输入的有效性。 - **国际化**:如何实现多语言的...
对于8个基本数据类型(byte, short, int, long, float, double, char, boolean)及其对应的包装类,以及Date类型,Struts2都会尝试进行自动类型转换。 例如,如果表单提交了一个日期格式的字符串"2022-01-01",...
6. 如果URL符合Struts的正则模式,对请求进行包装: - 如果请求是multipart,转换为`MultiPartRequestWrapper`。 - 如果请求是普通类型,禁止返回`request`的`ValueStack`函数。 7. `PrepareOperations`根据请求和...
### Maven2 完成 Struts2.0 项目打包实例详解 #### 一、Maven与Struts2.0简介 Maven是一个项目管理和理解工具,它提供了完整的生命周期管理,帮助开发者更容易地构建和管理Java项目。Struts2是Apache基金会下的一...
7. **异常处理**:了解Struts2如何处理和包装异常,以及如何自定义错误页面。 通过深入研究Struts2 2.3.15版本的源码,你可以更好地理解其工作原理,发现性能瓶颈,甚至为框架贡献自己的代码。这将使你在Java Web...
在探讨STRUTS2框架中如何获取session和request这一核心知识点时,我们首先需要理解STRUTS2框架的运行机制以及session与request在Web开发中的基础概念。 ### STRUTS2框架简介 STRUTS2是Apache软件基金会下的一个...