您的位置:首页 > 编程语言 > Java开发

struts工作原理详解心得体会 报错及解决办法

2015-12-16 15:53 369 查看
一。

首先服务器接收到url请求之后,会先到web.xml中运行过滤器,看看符合什么样的请求可以被接受。

<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>
<url-pattern>*</url-pattern>
</filter-mapping>


像*这种的话说明只要是url输入的请求都可以被接受运行,如果是*.action的话说明只有后缀为action的请求才会被处理。

然后再到struts.xml中去匹配是否有配置此action,如果有的话就去执行。比如说我们的请求路径为localhost:8080/a/b/register.action,那么就会去struts.xml中看有没有此路径下的action,如果没有的话就看localhost:8080/a/register.action里面有没有,知道没有找到为止。这就涉及到命名空间的问题

找到相应的action之后就去处理相应的请求

二。

如果有涉及到表单提交的问题,我们一般是先获得表单提交的页面(不是先过滤请求),这个的话只要部署了项目,我们自然可以访问得到,然后点击“提交”的时候就会去处理form表单的action,看看这个请求是否满足过滤器的要求,然后接着做“一”的步骤

这个时候url会由访问时候的路径变成web.xml中过滤器要求的url,实现了跳转。

报错及解决办法

Unable to load configuration. - action - file:/D:/workspace/Struts2_0100/WebRoot/WEB-INF/classes/struts.xml:38:66
at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:69)
at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Disp
9 27, 2011 4:07:17 午後 org.apache.catalina.core.StandardContext filterStart
重大: フィルタ struts2 の起動中の例外です
Unable to load configuration. - action - file:/D:/workspace/Struts2_0100/WebRoot/WEB-INF/classes/struts.xml:38:66
at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:437)

at java.lang.Thread.run(Unknown Source)
Caused by: Unable to load configuration. - action - file:/D:/workspace/Struts2_0100/WebRoot/WEB-INF/classes/struts.xml:38:66
at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:69)
出现问题的原因:是jar包的问题,那个spring-struts-plugin.jar没有自动发布到服务器上,然后我手动添加到服务器上就没问题了


2.

<constant name="struts2.objectFactory" value="spring" />   !表示交给Spring管理
<package name="Spring_Hibernate" extends="struts-default">
<action name="register" method="execute" class="userAction">   !class的名字是bean里面的id名
<result name="success">/success.jsp</result>
<result name="fail">/fail.jsp</result>
</action>


3.解决插入数据库的中文乱码的问题

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">


只要保持所有的编码都是统一的就不会出现乱码的问题,一般采用UTF-8也能处理中文,一个中文字用utf-8处理是3个字节
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: