Struts基本原理与核心配置
在使用JSP/Servlet时,原理为:
JSP–>web.xml中配置的 servlet与Servlet-mapping –> Servlet(接受参数,验证,调用DAO等操作) à跳转到不同的页面
使用Struts时,原理为:
JSP à web.xml àActionServlet(url-pattern:*.do) àstruts-config.xml(根据path路径找对应的action与actionForm) àActionForm àValidate方法验证(如果通过进入action,否则返回input错误页)àaction à调用DAO进行逻辑判断 à成功时跳转某个页面(struts-config.xml:forward),失败时可以返回到错误也(input)
Struts-config.xml中的配置组成:
<form-beans > <form-bean name="loginForm" type="com.wll.struts.form.LoginForm" /> </form-beans> |
以上配置针对的是Action的配置。
<action-mappings > <action attribute="loginForm" input="/login.jsp" name="loginForm" path="/login" scope="request" type="com.wll.struts.action.LoginAction"> <forward name="succ" path="/succ.jsp" /> <forward name="fail" path="/login.jsp" /> </action> </action-mappings> |
action-mappings:可包含多个aciton
action中包含的属性:
name、attribute表示该aciton所对应的actionForm的name属性;
一个aciton只能对应一个form,而一个form可以有多个action使用;
input:用来作为错误页的,当validate方法执行后有错误,则自动跳转到该页面;
所有struts-config.xml中配置的路径必须先加 / ,表示路径从WebRoot下开始定义;
path:表示该action的虚拟路径,必须加 / ,而且不需要加.do的后缀;
scope=“request”:表示action所保存的属性范围,request表示每次请求重新建立新的action;
type:表示该action的包.类名;
在action中可以包含多个不同的forward路径。
Forward中的属性:
Name:该forward的唯一标识,在action代码中执行跳转时需要通过该name来查找对应的路径;
Path:表示该forward所要跳转的路径,必须加 /。
<message-resources parameter="com.wll.struts.ApplicationResources" /> |
配置资源文件所在的路径,资源文件的后缀名必须为properties
<data-sources />
通过data-sources可以配置数据源连接,但struts开发中不使用
<global-exceptions> <exception key="num" type="java.lang.NumberFormatException" path="excep"> </exception> </global-exceptions> <global-forwards> <forward name="excep" path="/error.jsp"></forward> </global-forwards> |