最近开始学习Struts,怕看过的东西忘记了,小小总结一下,方便自己,也方便javaeye的同行们在忘记某些东西的时候可以查找看看。里面很多内容都引用了郭克华老师的代码。
好了,废话少说
1.配置文件
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<servlet>
<!-- 在此声明actionServlet-->
<servlet-name>actionServlet</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<!-- 初始化的时候,要读取的struts config文件路径-->
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
<init-param>
<param-name>debug</param-name>
<param-value>3</param-value>
</init-param>
<init-param>
<param-name>detail</param-name>
<param-value>3</param-value>
</init-param>
<load-on-startup>0</load-on-startup>
</servlet>
<!-- 声明jsp表单提交时候,凡以*.do为action内容的,都被actionServlet截获处理-->
<servlet-mapping>
<servlet-name>actionServlet</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
struts-config.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd">
<struts-config>
<data-sources />
<!-- 在此注册ActionForm -->
<form-beans>
<!-- name:名称 type:类路径 -->
<form-bean name="queryForm" type="prj2_1.QueryForm"></form-bean>
</form-beans>
<global-exceptions />
<!-- 设置URL逻辑名称(全局,任意的Action都可以识别到)-->
<global-forwards>
<forward name="RESULT" path="/queryResult.jsp"></forward>
</global-forwards>
<!-- 注册Action -->
<action-mappings>
<!-- type:类路径; name:相应的ActionForm的名称; path:客户端提交到服务器端时指定的路径 -->
<action name="queryForm" path="/query" type="prj2_1.QueryAction">
<!-- 设置URL逻辑名称(局部,只有这个Action可以识别到)-->
<forward name="RESULT" path="/queryResult.jsp"></forward>
</action>
</action-mappings>
<message-resources parameter="prj2_1.ApplicationResources" />
</struts-config>
二、要实现的类
Action
package prj2_1;
import java.util.ArrayList;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import dao.StudentDao;
//Action:负责接受ActionForm的数据,处理
//1:必须继承org.apache.struts.action.Action
//2:重写execute方法来处理业务逻辑
//3:将这个类在配置文件中注册
public class QueryAction extends Action{
public QueryAction(){
System.out.println("QueryAction构造函数");
}
//ActionForward:封装了跳转目标的路径
//mapping:访问配置文件
//form:传过来的ActionForm对象
public ActionForward execute(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response) throws Exception {
QueryForm queryForm = (QueryForm)form;
String sname = queryForm.getSname();
//String sname = request.getParameter("sname");
sname = new String(sname.getBytes("ISO-8859-1"));
StudentDao studentDao = new StudentDao();
ArrayList stus = studentDao.queryStuByName(sname);
request.setAttribute("stus", stus);
//跳转
//ActionForward af = new ActionForward("/queryResult.jsp");
ActionForward af = mapping.findForward("RESULT");
return af;
}
ActionForm (只要和jsp里面的form的属性一对一对应好就可以了)
package prj2_1;
import org.apache.struts.action.ActionForm;
//ActionForm:容纳表单提交的值
//1:必须继承 org.apache.struts.action.ActionForm
//2:必须编写和表单元素同名的属性
//3:必须在Struts配置文件中进行注册
public class QueryForm extends ActionForm{
public QueryForm(){
System.out.println("QueryForm构造函数");
}
private String sname;
public String getSname() {
return sname;
}
public void setSname(String sname) {
System.out.println("QueryForm setSname");
this.sname = sname;
}
}
三、Jsp的内容,注意query.do
<form action="/Prj2_1/query.do" method="post">
请您输入学生姓名:<input name="sname">
<input type="submit" value="模糊查询">
</form>
四、小结
感觉上, 刚刚接触Struts,也不难,关键是要记好它的配置文件是怎样关联的。它的好处是可以把代码的耦合性减低,jsp_request, actionForm, action, jsp_forward几个都可以互不认识,只需要在struts-config.xml里面配置。代码维护起来比较方便。但还有一个问题,就是request里面的attribut的name还是存在某种程度的重合,如果可以在同一位置配置就更好了,不过这个不是Struts的问题,jsp开始就一直存在了,可能已经有解决方法,可能我还没有发现,哈。
分享到:
相关推荐
- **发展演变**: Struts2 结合了传统 Struts1 和 WebWork 两个经典框架的优点,是一个成熟的 MVC 框架。 - **核心功能**: - 允许使用 POJO (Plain Old Java Object) 作为 Action 类,使得 Action 更易于测试。 - ...
张龙圣思园的Struts2学习笔记,无疑为Java开发者提供了一份宝贵的参考资料,它可能涵盖了Struts2的基础概念、核心组件、配置方式以及实战技巧。 首先,让我们深入了解Struts2的核心特性。Struts2是MVC(Model-View-...
- **核心**:Struts2 的核心其实是 WebWork 2,它融合了 Struts 1 的一些优秀思想。 - **优势**:使用 Struts2 可以显著提高开发效率,因为它能够处理很多基础任务,如数据接收、类型转换、验证等。 **1.2 Struts2 ...
这是我看完传智播客Struts1视屏后对Struts1进行的总结,每次复习都是看这个,自认为还不错,希望对你有所帮助,如果您觉得还行的话,记得给好评哦!
在本套“达内,tarena,struts笔记,strutsPPT课件,达内struts笔记”资源中,我们重点关注的是Struts 1.x版本,这是一个较旧但仍然广泛使用的版本,尤其对于初学者来说,它是理解MVC设计模式和Web开发基础的良好...
1. **Struts2 HelloWorld**: 创建一个简单的Struts2应用通常从"HelloWorld"开始。首先,我们需要设置开发环境,这包括安装Tomcat服务器和JDK,并将必要的jar包添加到项目中。特别地,`struts.xml`配置文件至关重要...
Struts2是一个强大的Java EE应用程序框架,用于构建和维护可扩展、模块化和高度控制的Web应用程序。...通过阅读“struts笔记1”,你可以逐步深入地了解这些知识点,并将理论知识与实践相结合,提升自己的技能水平。
Struts2是一个强大的Java web应用程序开发框架,它遵循Model-View-Controller (MVC)设计模式,用于构建可维护性和可扩展性高的企业级应用。本文将深入探讨Struts2的核心概念,包括Action、Result、配置文件、OGNL与...
Struts2是Apache软件基金会的一个开源项目,它是Struts1的升级版,弥补了Struts1在灵活性和扩展性上的不足。Struts2的核心是Action,它负责接收请求并调用业务逻辑,然后返回结果给用户。 2. **配置Struts2** 在...
本课程笔记主要涵盖了Struts2的基础概念、核心功能及其工作流程。 首先,Struts2的处理流程是通过一系列的组件协作完成的,包括Filter Dispatcher(过滤器调度器)、Action、Interceptor(拦截器)和Result。当用户...
入门级的struts,适合新手入门
Struts1是Apache软件基金会下的一个项目,它为Java EE应用程序提供了强大的控制层结构。其核心功能包括请求分发、视图渲染、业务逻辑调用以及异常处理等。以下是一些关键知识点: 1. **MVC模式**:Struts将Web应用...
本笔记将全面总结Struts2的核心概念、主要功能以及实际开发中的应用。 一、Struts2概述 Struts2是Apache软件基金会下的一个开源项目,它继承了Struts1的优点并解决了其存在的问题,如性能和灵活性。Struts2的核心是...
Struts是Apache软件基金会 Jakarta项目下的一个...总结,跃达创新的Struts笔记全面涵盖了Struts框架的核心要素和实际开发中的应用技巧。通过深入学习和实践,开发者可以熟练掌握使用Struts构建高效、可维护的Web应用。
学习Struts2第三天笔记