各位,小弟正在学习Struts2,写了一个登陆的例子,其代码分别如下:
Struts.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<include file="struts-default.xml"/>
<constant name="struts.action.extension" value="action" />
<constant name="struts.enable.DynamicMethodInvocation" value="true" />
<constant name="struts.devMode" value="true" />
<constant name="struts.i18n.encoding" value="GBK" />
<constant name="struts.ui.theme" value="simple"/>
<constant name="struts.ui.templateDir" value="template"/>
<constant name="struts.ui.templateSuffix" value="ftl"/>
<include file="admin_struts.xml"/>
</struts>
admin_struts.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<package name="admin" extends="struts-default" namespace="/admin">
<!--default-interceptor-ref name="validation"/-->
<!-- 用户管理Action -->
<action name="login" class="com.toxy.admin.web.UserAction" method="login">
<result name="login">/admin/admin_index.html</result>
<result name="error">/admin/login.jsp</result>
</action>
<action name="logout" class="com.toxy.admin.web.UserAction" method="logout">
<result name="success">login.jsp</result>
</action>
<action name="queryUser" class="com.toxy.admin.web.UserAction" method="queryUser">
<result>login.jsp</result>
</action>
</package>
</struts>
定义了一个用户对象User:
内有用户属性:
loginName,并申明了get、set方法。
实现UserAction 如下:
public class UserAction extends BaseAction {
private static Logger logger = Logger.getLogger(UserAction.class);
private User user = new User();
/**
* 用户登陆
* @return
*/
public String login() {
[color=red][size=24] //这里打印出来的是空,不知道为什么????
logger.info("username = "+user.getLoginName);[/size][/color]
return LOGIN;
}
/**
* @return the user
*/
public User getUser() {
return user;
}
/**
* @param user the user to set
*/
public void setUser(User user) {
this.user = user;
}
}
login.jsp代码:
(因为表格内容太多,就不全拷贝上来了)
jsp头定义:
<%@page language="java" pageEncoding="GBK"
contentType="text/html; charset=GBK"%>
<%@ taglib uri="/struts-tags" prefix="s" %>
表单元素:
<s:textfield name="user.loginName" value="%{user.username}" cssStyle="width:150;height:20" />
提交后其它一切正常,就是无法实现在页面上表单名用:
<s:textfield name="user.loginName" value="%{user.username}" cssStyle="width:150;height:20" />
而不能将loginName属性自动填充到User对象的loginName属性里,请各位大侠指导,谢谢!
分享到:
相关推荐
不过,这里提到的"ActionForm自动填充表单"可能是指Struts2中的一种特性,即模型驱动(ModelDriven)或拦截器(Interceptor)如何帮助自动处理表单数据。 在Struts2中,你可以使用`ModelDriven`接口来实现表单数据...
当用户提交表单时,Struts会自动将表单数据填充到ActionForm Bean的相应属性中,以便在控制层进行处理。 表单验证主要通过覆盖ActionForm的`validate()`方法来实现。这个方法会在用户提交表单后,Action类执行之前...
当用户提交表单后,Struts2会调用匹配的Action类的`execute()`方法,此时,`name`和`email`属性已经被填充了表单数据。你可以在这里进行数据验证、业务处理等操作。 至于结果页面,Struts2支持JSP、FreeMarker、...
本篇文章将深入探讨Struts1.x和Struts2.x在向Action中填充JSP参数的原理。 Struts1.x的工作原理: Struts1的核心是ActionServlet,它是一个实现了Servlet接口的控制器。当用户发起HTTP请求时,请求会被Dispatcher...
1. **自动填充属性**:在Struts2中,这一功能通常通过Action类和表单Bean的映射来实现。当用户提交表单时,Struts2框架会自动将请求参数绑定到Action类的属性上,极大地减少了开发者手动获取请求参数的工作量。这...
最后,处理请求时,框架会自动将上传的文件内容填充到对应的字段中。 2. **文件下载** 在Struts2中,文件下载可以通过重定向或流式下载实现。重定向方式简单,但不适用于大文件。流式下载则更推荐,它允许设置响应...
4. 如果验证失败,Struts2将填充Action的`fieldErrors`,并根据配置返回错误结果。 5. 验证成功,则执行Action方法。 ### 6. 实战示例 创建一个简单的登录Action,使用注解进行用户名和密码的验证: ```java @...
在Struts2框架中,动态填充下拉框是常见的需求,尤其在开发Web应用时,我们需要根据后台数据库的数据来生成前端页面的选项。这有助于提供动态的、实时更新的用户界面,提高用户体验。本示例将详细介绍如何在Struts2...
当用户提交表单时,Struts2会自动将表单数据填充到对应的Action属性中,无需手动获取HTTP请求参数。 此外,Struts2还提供了丰富的插件系统,如Tiles插件,可以方便地进行页面布局。同时,Struts2与Spring框架的集成...
- **Struts2提供了一组丰富的表单标签**,如`<s:textfield>`、`<s:password>`、`<s:submit>`等,这些标签可以自动绑定模型属性、验证数据、生成错误消息等。 #### 6. Struts2的文件上传与下载 - **文件上传**:...
在表单处理方面,Struts2支持多种高级技巧,如自动填充表单字段、动态生成表单元素等。 ##### 4.4 Struts2的扩展与定制 为了满足不同的开发需求,Struts2允许开发者对其进行扩展和定制。这包括自定义拦截器、结果...
在Action类中,Struts2会自动将表单的值填充到这些属性中。 5. **验证逻辑**:在`login()`方法内,你需要验证用户输入的用户名和密码是否有效。Struts2提供了内置的验证机制,可以通过注解或者XML配置文件进行校验...
总之,“struts2 表单数据绑定map、list等.rar”涵盖了Struts2框架中关于表单数据绑定的核心概念,包括基本类型、复杂对象、集合类型以及相关的自定义扩展。掌握这些知识,将使你在使用Struts2开发Web应用时更加...
- Struts2支持依赖注入(DI),允许你在Action类中声明字段,Struts2会自动根据配置填充这些字段的值,简化了对象的创建和管理。 8. **国际化**: - Struts2支持多语言环境,你可以创建资源文件(如`messages....
- 在处理表单提交时,利用Struts2的表单标签,框架会自动处理数据验证和类型转换。 6. **注意事项**: - 确保在web.xml中配置了Struts2的核心过滤器`<filter-class>org.apache.struts2.dispatcher.ng.filter....
Struts2提供了一套完整的解决方案来处理用户请求,包括表单填充、验证以及业务逻辑调用等。同时,Struts2还提供了强大的拦截器机制,可以轻松地实现诸如文件上传/下载、国际化等功能。 #### JavaScript与Struts2的...
JSP页面可以包含一个搜索表单,用户输入条件,提交后Struts2会处理请求并展示查询结果。 6. **Struts2 CRUD架构**:在Struts2中,CRUD操作通常涉及到以下组件: - **Action**:处理HTTP请求,执行业务逻辑。 - **...
- **属性注入**:Struts2支持通过请求参数自动填充Action中的属性。 - **请求后缀**:可以通过配置指定Struts2处理的请求后缀,如.action。 - **Struts2常量**:可以通过配置文件设置各种常量,例如指定默认编码等。...
- `ActionForm`通过`populate`方法自动填充表单数据,但其灵活性有限。 #### Struts2: - Struts2允许直接使用POJO作为模型数据,无需特定的`ActionForm`。 - 提供了`ModelDriven`接口,允许为每个Action配置不同的...