Struts2是一个开源的MVC(Model-View-Controller)框架,用于构建静态的、数据驱动的Web利用顺序。它持续了Struts 1的计划理念,但在功能性跟机动性长停止了明显晋升。本文将深刻剖析Struts2框架,包含其核心不雅点、架构原则、实战技能以及罕见成绩解答。
Actions是Struts2框架中的核心组件,担任处理用户恳求,履行营业逻辑,并筹备数据以供视图层展示。Action类平日实现了Action接口或持续自ActionSupport类,以便利用框架供给的默许行动跟功能。
拦截器用于在Action履行前后履行特定任务,如权限检查、数据预处理或后处理。拦截器可能被设置成拦截器栈,以实现更复杂的逻辑流程把持。
值栈是Struts2用来存储跟转达数据的东西容器,它利用OGNL作为其表达式言语,使得开辟者可能轻松拜访跟修改数据东西的属性。
Struts2框架支撑多种成果范例,如JSP、FreeMarker模板、Velocity模板、JSON、XML等,这些成果范例决定了Action履行后怎样衬着呼应给客户端。
Struts2框架遵守以下架构原则:
<web-app>
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<dispatcher>FORWARD</dispatcher>
<dispatcher>REQUEST</dispatcher>
<url-pattern>/</url-pattern>
</filter-mapping>
</web-app>
<?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="default" extends="struts-default">
<action name="index" class="com.example.IndexAction">
<result>/index.jsp</result>
</action>
</package>
</struts>
解答:检查页面上能否有中英文标记错误,能否有struts标签错误等。
解答:检查struts.xml文件中能否有设置开辟形式,以及commons-fileupload跟commons-io-1.3.2这两个jar包能否已导入。
解答:假如xxx是sessionFactory,则与Hibernate有关。请检查Hibernate设置文件,对比错误信息停止修改。
Struts2是一个功能富强且机动的Web利用框架,合实用于构建复杂的Web利用顺序。经由过程本文的剖析,读者应当对Struts2有了更深刻的懂得,可能更好地利用它于现实项目中。