Struts2框架详解:URL标签与优势

需积分: 11 0 下载量 77 浏览量 更新于2024-08-23 收藏 318KB PPT 举报
"这篇文档主要介绍了Struts2框架的基本知识,包括URL标签的使用以及Struts2相对于Struts1的优点。此外,还提到了搭建Struts2开发环境所需的步骤和依赖的jar文件。" 在Struts2框架中,`<s:url>`标签用于构建动态URL,它可以与`<s:param>`标签配合使用传递参数。例如,`<s:url action="helloworld_add" namespace="/test"><s:param name="personid" value="23"/></s:url>`将生成一个包含`personid`参数的URL:`/struts/test/helloworld_add.action?personid=23`。在这里,`namespace`定义了作用域,`action`指定了要执行的动作,而`s:param`用于添加请求参数。 在处理字符串类型的属性时,如果URL值包含`%`符号,它会被解释为OGNL(Object-Graph Navigation Language)表达式。例如,`<s:set name="myurl" value="'http://www.foshanshop.net'"/>`定义了一个变量,之后`<s:url value="#myurl" />`或`<s:url value="%{#myurl}" />`都将输出这个变量的值,即`http://www.foshanshop.net`。 Struts2框架是在WebWork2的基础上发展起来的,它改进了Struts1的一些设计缺陷。与Struts1相比,Struts2的主要优点如下: 1. **无侵入式设计**:Struts2的应用程序不依赖ServletAPI和StrutsAPI,降低了耦合度。在Struts1中,Action类通常需要继承自`Action`类,而在Struts2中,Action类可以是任何实现了`Action`接口的类,这使得代码更加灵活。 2. **拦截器**:Struts2引入了拦截器(Interceptor),使得AOP(面向切面编程)成为可能,例如可以方便地实现登录检查、权限控制等功能。 3. **类型转换器**:Struts2提供了内置的类型转换器,可以自动将请求参数转换为所需类型,避免了在Struts1中需要手动注册转换器的繁琐操作。 4. **多视图支持**:Struts2支持多种视图技术,如JSP、FreeMarker、Velocity等,提高了视图层的可选性和灵活性。 5. **输入验证**:Struts2的输入验证可以在方法级别进行,增强了验证的粒度,而Struts1的验证通常是表单级别的。 6. **国际化资源管理**:Struts2提供了对全局、包级和Action级别的国际化资源文件的支持,便于进行多语言开发。 要搭建Struts2开发环境,开发者需要完成以下步骤: 1. 获取Struts2的jar文件,这些文件可以从Apache Struts官方网站下载。 2. 编写Struts2的配置文件,例如`struts.xml`,该文件定义了Action、拦截器等配置。 3. 在`web.xml`配置文件中配置Struts2的前端控制器(Front Controller)Filter,确保Struts2框架能够正确启动。 通过这些步骤,开发者可以创建一个基础的Struts2项目,然后在此基础上构建应用程序。

我用Spring5的aop应用时报这个错误Exception in thread "main" org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from file [D:\ecliple\web5\WEB-INF\applicationContext.xml]; nested exception is java.nio.file.NoSuchFileException: WEB-INF\applicationContext.xml,他说我的applicationContext.xml文件不存在,可是我明明有这个文件,另外我的web.xml需要更改吗<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> <context-param> <param-name>contextConfigLocation </param-name> <param-value>/WEB-INF/applicationContext.xml</param-value> </context-param> <display-name>Struts2</display-name> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <filter> <filter-name>struts2</filter-name> <filter-class> org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter </filter-class> </filter> <filter> <filter-name>OpenSessionInViewFilter</filter-name> <filter-class>org.springframework.orm.hibernate5.support.OpenSessionInViewFilter</filter-class> </filter> <filter-mapping> <filter-name>OpenSessionInViewFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/* </url-pattern> </filter-mapping> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> </web-app>

2023-05-30 上传