没有合适的资源?快使用搜索试试~ 我知道了~
factory模式.doc
需积分: 0 1 下载量 100 浏览量
2008-12-21
10:27:20
上传
评论 1
收藏 185KB DOC 举报
温馨提示
试读
31页
简单工厂模式和抽象工厂模式,我觉的还不错
资源推荐
资源详情
资源评论
查看文章
解读 struts(一)
2007 年 10 月 23 日 星期二 17:16
MVC 模型:视图、控制器、模型
流程:
1、JSP 页面(视图)发送请求,发送请求时候 form 对应 action=”/Path”的,
2、请求通过 web.xml 文件中的
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
去寻找 action,但在 web.xml 文件中的
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
可以让我们找到 action 所对应的类是 ActionServlet,ActionServlet 会根据 struts-
con'g.xml 的配置文件来处理请求,主要是通过 Path 来找到所对应的 Action 的类。
3、在 struts-con'g.xml 配置如下代码分析:
<action
attribute="loginForm" //ActionForm Bean(起到页面和后台对象传递数据中
介)
input="/login.jsp" //请求的 JSP 页面
name="loginForm" //ActionForm Bean 的名字
path="/login" //请求的路径,上文提到的 action=”/Path”
scope="request"
validate=”true” //struts 验证框架(如果验证失败,错误消息会显示
在请 求的 JSP 页面)
type="com.test.struts.action.LoginAction" /> //要处理该请求的实体类
4、LoginAction 可以算的上是一个 javaBean 了,用来处理页面请求进行业务逻辑处理的实体
类。
这里我理解为 2、3、4 这几个过程是控制器来支配的。
5、LoginAction 里面可能会出现很多业务逻辑处理的方法,这些方法可以理解为模型,具体处
理请求。
web.xml 解读
1、配置 struts 的 ActionServlet 以及声明 ActionServlet 初始化参数
主要的两个配置如下:
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
其他配置
<servlet>
<init-param>
<param-name>con'g</param-name>
<param-value>/WEB-INF/struts-con'g.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>
<init-param>
<param-name>encoding</param-name>
<param-value>GBK</param-value>
</init-param>
<load-on-startup>0</load-on-startup>
</servlet>
spring 配置
<context-param>
<param-name>contextCon'gLocation</param-name>
<param-value>
/WEB-INF/applicationContext.xml
</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</
listener-class>
</listener>
<html:messages>
Action 中 :
ActionMessages message = new ActionMessages();
message.add(" 消息句柄 ",new ActionMessage(" 资源文件中 Key 值 ",String 类型描述信息 ));
this.addMessages(request,message);
return ActionForward;
JSP 页面中 :
<html:messages id=" 指定使用消息的标识 " property=" 消息句柄 " message="true|false">
<bean:write name=" 以上所指 ID 标识 "/>
</html:messages>
例如:
Action 方法中:
saveMessage(request,"页面要显示的消息");
Action 的调用的方法,可以写真 Action 实现类的父类 BaseDispatchAction 中:
public ActionMessages saveMessage(HttpServletRequest request, String key) {
ActionMessages messages = new ActionMessages();
return saveMessage(messages, request, key);
}
protected ActionMessages saveMessage(ActionMessages messages,
HttpServletRequest request, String key) {
messages.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage(key));
saveMessages(request, messages);
return messages;
}
页面:
<html:messages id="msg" message="true"><bean:write name="msg"/></html:messages>
<html:errors>
Action 中 :
ActionMessages message = new ActionMessages();
message.add(" 消息句柄 ",new ActionMessage(" 资源文件中 Key 值 ",String 类型描述信息 ));
this.saveErrors(request,message);
return ActionForward;
JSP 页面中 :
<html:errors property=" 消息句柄 "/>
如果 Action 中这样设定(false),页面的提示信息将不从资源文件里读取:
ActionMessages message = new ActionMessages();
message.add("消息句柄",new ActionMessage("String 类型描述信息));",false));
this.saveErrors(request,message);
return ActionForward;
JSP 页面:
<html:errors/>或<html:errors property="消息句柄"/>
2、欢迎文件清单(登录是访问第一个页面)
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
3、配置错误处理(暂略)
4、配置 struts 标签库
<jsp-config>
<taglib>
<taglib-uri>/tags/struts-bean</taglib-uri>
<taglib-location>/WEB-INF/tld/struts-bean.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/tags/struts-html</taglib-uri>
<taglib-location>/WEB-INF/tld/struts-html.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/tags/struts-logic</taglib-uri>
<taglib-location>/WEB-INF/tld/struts-logic.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/tags/struts-nested</taglib-uri>
<taglib-location>/WEB-INF/tld/struts-nested.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/tags/struts-tiles</taglib-uri>
<taglib-location>/WEB-INF/tld/struts-tiles.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/tags/pager-taglib</taglib-uri>
<taglib-location>/WEB-INF/tld/pager-taglib.tld</taglib-location>
</taglib>
</jsp-config>
5、引入 Spring 配置文件(暂略)
struts-config.xml 文件解读
1、ActionForm Bean 用于数据传递
<form-beans >
<form-bean name=" " type=" ">
<form-property name=" " type=" " />
……
<form-property name=" " type=" " />
</form-bean>
2、Forwards 全局页面跳转
<global-forwards >
<forward name=" " path="" />
……
</global-forwards>
3、action-mappings 分析
<action-mappings >
<action path=" " forward=" "/> //请求转发(和局部页面跳转有别)
……
<action path=" " forward=" "/>
<action path="/login" input="/login.jsp"
name="loginForm" attribute="loginForm" scope="request"
roles=”” //管理员权限设置
type="com.test.struts.action.LoginAction">
<forward name=" " path="" /> //局部页面跳转
……
<forward name=" " path="" />
</action>
……
<action ……
</action>
<action-mappings >
4、controller 元素配置 ActionServlet(可以用来设置管理登录或登录后角色验证等)
<controller
bufferSize="4096"
locale="false"
nocache="false"
inputForward="false"
maxFileSize="100M" tempDir="c:\temp"
processorClass="某类" //该类实现 RequestProcessor,每个请求都会通过该类,可以
处理管理员是否一直是登录,可以处理管理的角色权限等
/>
5、资源文件和验证框架
<message-resources null="true" parameter="resources.ApplicationResources" />
<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
<set-property property="pathnames"
value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml" />
</plug-in
在网上看了很多这方面的资料,头也大了,众说纷纭,但都大同小异,按我自
己的理解总结了一下:
Factory 模式可以分为:简单工厂(Simple Factory)、工厂方法(Factory
Method)、抽象工厂(Abstract Factoty)
下面分别来说明下:
简单工厂(Simple Factory)是比较容易理解的,主要是一个具体的全能类,
负责产生所有的之类,根据传来的参数进行比较产生相对应的之类,简单工厂
方法没有抽象出方法。用列说面如下:
public static Product factory(String which) throw
NoSuchProductExcption
{
剩余30页未读,继续阅读
资源评论
灰太狼11111
- 粉丝: 5
- 资源: 51
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功