读书人

Struts教授教养视频

发布时间: 2012-09-16 17:33:17 作者: rapoo

Struts教学视频

Domain Name (DDD 领域模型驱动)

Pattern??????????

Framework

?

UI(Presentation) Layer -- Business Layer -- Persistence Layer

Structs?????????? Spring????????????????? Hibernate

?



Struts教授教养视频
?
?

?面向请求驱动(Structs1.x Structs 2.x Webwork)

?面向事件驱动 (JSF)

?

?Action, ActionForm, ActionMapping

?

?JSP页面 --> ActionServlet (doPost ) --> RequestProcessor.process() 截取url (/login)

????????????? --> ProcessMapping --> findActionMapping (struts-config.xml)--> FormBean (ActionFrom)

????????????? --> 收集表单数据 (processPopulate) --> processValidate --> processActionPerform

????????????? --> processForwardConfig

?


Struts教授教养视频
?

?

动态验证框架?

<plug-in className="org.apache.struts.validator.ValidatorPlugIn">

?????? <set-property? property="patchnames" value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml/>

</plug-in>

?

ActionForm

?@Override
?public void reset(ActionMapping mapping, HttpServletRequest request) {
??System.out.println("----------LoginActionForm.reset()-----------");
?}

?收集数据前重置数据

?

?@Override
?public ActionErrors validate(ActionMapping mapping,
???HttpServletRequest request) {
??System.out.println("----------LoginActionForm.validate()-----------");
??return null;
?}?

?服务器端验证(表单验证,原则上不做数据库的验证)

?可以在struts-config.xml 里面设置是否执行。默认validate="true"

?

?

?

?ActionForm_Struts上传

?

org.apache.struts.upload.FormFile

?

myFile.getFileData());fos.flush();fos.close();}return mapping.findForward("success");}}

?

?<controller maxFileSize="10M"/>? 可配置各种上传文件的限制

?

空字段问题

?

UI不存在这个字段, JS和EL效果不一样,JS为null,EL为“”

UI存在这个字段,JS和EL效果一样

?

类型转换器

?

实现接口Convert接口,需注册,在servlet启动时

?

?

DTO?? 数据传输对象

VO???? 值对象

?

ActionForm就是一个DTO对象

?

ActionForward

?

重定向?<forward name="login" path="/login.jsp" redirect="true"/>

?

全局ActionForward

?

?<global-forwards>
??<forward name="login" path="/login.jsp" redirect="true"/>
?</global-forwards>

?

?ActionForward af = mapping.findForward("login");
?af.setRedirect(false);
?return af;
???

?

??return af;?

?

?自己写actionForward??className属性

?

?ActionMapping

?

对应配置信息,一个标签对应一个instance

?

validate 校验错误到input

parameter

?

unknowActionMapping

?

forward属性,空action,从do过去

<action path="/login1"????forward="/login.jsp"??></action>

?

??<action path="/testunknown"
????unknown="true"
????forward="/testunknown.jsp"
??></action>

针对do请求

?

和type互斥,配了以后就不执行action属性定义的类了

?

?

Struts 国际化

?

request.getSession().setAttribute(Globals.LOCALE_KEY, currentLocale);

或者

this.setLocale 在Action里面

?

动态国际化文本

创建国际化消息文本

ActionMessage message = new ActionMessage("user.login.success",username);

?

传递国际化消息文本

this.saveMessage(request,messages);?? 普通消息

this.saveErrors??? 错误消息

?

通过<html:messages>标签(可以显示普通和错误消息)

通过<html:errors>只能显示错误消息

读书人网 >软件架构设计

热点推荐