Struts2中,支持直接使用领域对象获取用户输入的值,再也不用像Servlet中要Request.request.getparameter(" ");才能获取到; Struts中的领域对象 ,ModelDriven ,action属性三种方式
Struts中的领域对象;将类的属性写成一个User类,在Struts转发的页面会创建这个类,并创建set和
get方法;代码下面已经实现 ; 代码下面已经实现
action属性;与java bean的方式差不多 ;代码下面已经实现
ModelDriven ;需要实现Action,ModelDriven接口,在实现的接口页面 手工穿件User的对象,不能创建Set和Get方法 ,实现getModel()方法 ;代码下面已经实现
1,Struts中的领域对象:
a,登陆页面;
<form action="login" method="post"> 登录页面: 账号:<input type="text" name="user.username" /> 密码:<input type="password" name="user.userpwd"/> <input type="submit" value="提交" /> </form>
b,struts.cml配置文件
<package name="default" namespace="/" extends="struts-default"> <action name="hello" > <result >/login.html</result> </action> </package> <package name="main" extends="struts-default" > <action name="login" class="ActionDemo.ActionDemoSupport"> <result name="hello">/1.jsp</result> <result name="hellow">/loginfail.html</result> </action> </package>
c,User类
package ActionDemo; import java.io.Serializable; public class User implements Serializable{ private String username; private String userpwd; public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getUserpwd() { return userpwd; } public void setUserpwd(String userpwd) { this.userpwd = userpwd; } }
d,Struts的转发类
public class ActionDemoSupport extends ActionSupport { //接收username和userpwd传过来的参数 private User user; public User getUser() { return user; } public void setUser(User user) { this.user = user; } @Override public String execute() throws Exception { if("scott".equals(user.getUsername())&&"tiger".equals(user.getUserpwd())){ return "hello"; }else{ return "hellow"; } }
e,jsp显示页面
<%@ taglib prefix="s" uri="/struts-tags" %>
欢迎:<s:property value="user.username" />登陆
2,ModelDriven操作领域对象
a,登陆页面;
<form action="login" method="post"> 登录页面: 账号:<input type="text" name="username" /> 密码:<input type="password" name="userpwd"/> <input type="submit" value="提交" /> </form>
b,Struts,xml配置
<package name="default" namespace="/" extends="struts-default"> <action name="hello" > <result >/login.html</result> </action> </package> <package name="main" extends="struts-default" > <action name="login" class="ActionDemo.ActionDemoSupport"> <result name="hello">/1.jsp</result> <result name="hellow">/loginfail.html</result> </action> </package>
c, User类
public class User implements Serializable{ private String username; private String userpwd; public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getUserpwd() { return userpwd; } public void setUserpwd(String userpwd) { this.userpwd = userpwd; } }
d,使用ModelDriver接收用户数据
public class ActionDemoSupport implements Action,ModelDriven<User> { //ModelDriven接收用户输入必须要new ,action和领域对象接收用户输入是不需要创建对象的 private User user =new User(); @Override public User getModel() { // TODO Auto-generated method stub return user; } @Override public String execute() throws Exception { if ("scott".equals(user.getUsername()) && "tiger".equals(user.getUserpwd())) { return "hello"; } return "hellow"; }
e,jsp显示页面
<%@ taglib prefix="s" uri="/struts-tags" %>
欢迎:<s:property value="username" />登陆
3,action属性操作接收用户输入
a,登陆页面 ;
<form action="login" method="post"> 登录页面: 账号:<input type="text" name="username" /> 密码:<input type="password" name="userpwd"/> <input type="submit" value="提交" /> </form>
b,struts.xml配置
<package name="default" namespace="/" extends="struts-default"> <action name="hello" > <result >/login.html</result> </action> </package> <package name="main" extends="struts-default" > <action name="login" class="ActionDemo.ActionDemoSupport"> <result name="hello">/loginsucc.html</result> <result name="hellow">/loginfail.html</result> </action> </package>
c, struts的action转发类
package ActionDemo; import com.opensymphony.xwork2.ActionSupport; /** * * @author Administrator Struts里面的转发类 */ public class ActionDemoSupport extends ActionSupport { //接收username和userpwd传过来的参数 private String username; private String userpwd; public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getUserpwd() { return userpwd; } public void setUserpwd(String userpwd) { this.userpwd = userpwd; } //转发的方法 @Override public String execute() throws Exception { System.out.println(">"+username+"<>"+userpwd+"<"); if ("scott".equals(username) && "tiger".equals(userpwd)) { return "hello"; } else { return "hellow"; } } }
相关推荐
Struts2.3.4.1是一个流行的Java Web框架的版本,它引入了注解支持,使得开发者可以实现“零配置”开发,大大简化了应用的配置过程。在这个"struts2.3.4.1注解零配置"的例子中,我们将深入探讨如何利用Struts2的注解...
1. **Struts2.3**:Struts2是一个强大的MVC框架,它负责处理用户的请求,并将其转发到相应的业务逻辑。在Struts2.3中,Action类是核心组件,用于接收和处理HTTP请求。配置文件`struts.xml`定义了Action与URL的映射,...
Struts2.3、Spring3.2、MyBatis3.2 和 Lucene4.2 是四个在Java Web开发中非常关键的技术组件,它们分别在应用程序的架构、依赖注入、数据库操作和全文检索方面扮演着重要角色。接下来,我们将详细探讨这四个技术以及...
在Web开发领域,Ajax(Asynchronous JavaScript and XML)是一种创建动态网页的技术,它允许页面无需刷新就能与服务器进行数据交互,提升用户体验。Struts2是一个非常流行的Java Web框架,它支持多种扩展,包括Ajax...
在Struts1.1中,ActionForm用于接收和验证用户输入,而ActionServlet作为控制器协调请求与业务逻辑。此示例中,Struts1.1可能被用来处理HTTP请求,并调用相应的Action来响应用户的操作。 2. **Spring2.5**:Spring...
在这个项目中,开发者利用了Spring 2.5、Struts 2.1和iBatis 2.3这三个组件来实现数据的增删改查功能,并且结合了存储过程来增强数据库操作的灵活性。同时,通过Junit进行单元测试,确保代码的正确性和稳定性。 ...
- **输入验证**:确保所有输入数据经过严格的验证。 - **权限控制**:实现细粒度的权限管理,防止未授权访问。 **5.3 错误处理** - **异常捕获**:通过异常拦截器捕捉并处理运行时异常。 - **错误页面**:配置错误...
- **数据绑定**:Struts框架支持自动的数据绑定功能,能够将用户提交的数据自动填充到对应的ActionForm Bean中。 ### 总结 Struts是一个强大的Java Web应用程序框架,它通过实现MVC模式来简化Web应用程序的开发...
##### 2.3 用Struts实现MVC **2.3.1 MVC Model2** Struts框架采用了MVC Model2模式,这是一种服务器端的MVC实现方式。在这种模式下,模型、视图和控制器都位于服务器端,客户端只需要发送请求并接收响应即可。 **...
Struts的控制器组件是其核心之一,负责接收用户的请求、调用业务逻辑层处理数据,并将结果返回给视图层展示。 **2.2.4 用Struts开发Web应用** 这部分详细讲解了如何利用Struts框架来构建完整的Web应用程序,包括...
5. **工作流程**:当用户发送请求时,Struts框架通过FilterDispatcher(在Servlet 2.3规范中)或FrontController(在Servlet 2.4及以上规范中)拦截请求,解析请求参数,然后根据struts-config.xml中的配置找到对应...
在"Struts2+Hibernate整合"项目中,使用的是Struts2的S2-2.3版本和Hibernate的4.17版本。这两个版本都是成熟且稳定的选择,能够提供强大的功能和良好的兼容性。这个项目的主要目标是实现用户注册功能,并展示所有已...
- **控制器**:处理用户的输入,并控制模型和视图之间的交互。 ##### 3.2 Struts2中的MVC实现 在Struts2中,这三个组件的具体实现如下: - **模型**:通常是由Java Bean或POJO对象组成,它们包含了应用程序的数据...
模型组件通常是通过ActionForm对象实现的,用于封装用户的表单输入数据。 - **视图组件**:展示给用户的界面,通常是由JSP页面构成。 #### 三、Struts框架的工作原理 ##### 3.1 Struts控制流 - **流程简介**:当...
CGI允许Web应用从数据库读取信息并呈现给用户,还能接收用户输入的数据并存储到数据库中。然而,CGI技术在开发复杂应用时显得较为繁琐且效率低下。 - **Servlet技术的兴起**:随着Java语言的普及,Servlet技术逐渐...
- **控制器(Controller)**:负责处理用户输入,并将控制权传递给模型和视图。 - **1.2.2 Java Web的实现模型** - 在Java Web开发中,MVC模式通常由Servlet作为控制器、JSP作为视图、以及JavaBean作为模型来实现...