欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
惡補J2EE Web 開(kāi)發(fā)(講稿大綱)
 惡補J2EE Web 開(kāi)發(fā)(講稿大綱)

這篇文章是給具備一些基本的j2ee開(kāi)發(fā)的兄弟們看的 

1 Webwork 2 作為MVC

要讓服務(wù)器支持webwork,首先需要對web服務(wù)器的web.xml進(jìn)行配置,這里用/*,表示所有請求都作為webwork的action,也可以使用*.action, 這樣只有后綴名為action的才執行。

web.xml 
<filter>
  <filter-name>webwork</filter-name>
  <filter-class>com.opensymphony.webwork.dispatcher.FilterDispatcher</filter-class>
</filter>

<filter-mapping>
  <filter-name>webwork</filter-name>
  <url-pattern>/*</url-pattern>
</filter-mapping>

配置好上面以后,webwork就可以運行了,我們添加兩個(gè)action試試

xwork.xml

<action name="employee" class="net.reumann.demo.webwork.employee.EmployeeAction">
  <result name="list">/WEB-INF/jsp/employee/employeeList.jspx</result>
  <result name="input">/WEB-INF/jsp/employee/employeeForm.jspx</result>
  <result name="success" type="redirect">employee.action</result>
</action>

這里添加了一個(gè)action叫做employee,也就是說(shuō),所有請求http://site/employee 訪(fǎng)問(wèn),都被看成觸發(fā)一個(gè)action.其具體內容如下:

這是一個(gè)最簡(jiǎn)單的action,它起到了控制器的作用,實(shí)現了CRUD的基本功能,代碼非常簡(jiǎn)介。幾乎和PHP,ROR差不多

EmployeeAction.java

public class EmployeeAction extends ActionSupport implements Preparable {


public String execute() throws Exception {  //如果URL沒(méi)有指定Action,默認調用它
  return list();  //轉到list
}

public String list() {
  return "list";
}

public String add() {
  employee = new Employee();
  return Action.INPUT;
}
public String edit() {
  employee = employeeDao.getEmployee(id);
  return Action.INPUT;
}

public String save() {
  if (nullOrZero(employee.getEmployeeId())) {
    employeeDao.insert(employee);
  } else {
    employeeDao.update(employee);
  }
    return Action.SUCCESS;
}

public String delete() {
  employeeDao.delete(id);
  return Action.SUCCESS;
}

public void prepare() {
  departmentList = departmentDao.getAllDepartments();  //用于selectbox中下拉菜單
  employeeList = employeeDao.getAllEmployees();
}

}

webwork是基于MVC2的,因此上面的控制器對應下面兩個(gè)模板文件。當然實(shí)際應用中不一定所有的界面都要采用MVC.

employeeList.jspx

<a href="employee!add.action">Add New Employee</a>

 

employeeForm.jspx

<w:if test="employee==null || employee.employeeId == null">
 <ww:set name="title" value="%{‘Add new employee‘}"/>
</w:if>
<w:else>
 <ww:set name="title" value="%{‘Update employee‘}"/>
</w:else>


<w:form action="employee!save.action" method="post">
    <w:textfield name="employee.firstName"
        value="%{employee.firstName}" label="%{getText(‘label.firstName‘)}" size="40"/>
    <w:textfield name="employee.lastName"
        value="%{employee.lastName}" label="%{getText(‘label.lastName‘)}" size="40"/>
    <w:textfield name="employee.age"
        value="%{employee.age}" label="%{getText(‘label.age‘)}" size="20"/>
    <w:select name="employee.department.departmentId"
        value="%{employee.department.departmentId}"
        list="departments" listKey="departmentId" listValue="name"/>
    <w:hidden name="employee.employeeId"
        value="%{employee.employeeId}"/>
    <w:submit name="action" value="%{getText(‘button.label.submit‘)}" cssClass="butStnd"/>
    <w:submit name="action" value="%{getText(‘button.label.cancel‘)}" cssClass="butStnd"/>
</w:form>

我們看到,這個(gè)表單非常簡(jiǎn)單,由于其名字的規范定義。webwork的action響應時(shí),會(huì )自己裝載其中的變量,和struts的formbean差不多。

EmployeeAction-validation.xml

<validators>
  <field name="employee.firstName">
     <field-validator type="requiredstring">
        <message key="errors.required.firstname"/>
      </field-validator>
  </field>
  <field name="employee.lastName">
     <field-validator type="requiredstring">
        <message key="errors.required.lastname"/>
      </field-validator>
  </field>
  <field name="employee.age">
     <field-validator type="required" short-circuit="true">
        <message key="errors.required.age"/>
      </field-validator>
      <field-validator type="int">
       <param name="min">18</param>
       <param name="max">65</param>
        <message key="errors.required.age.limit"/>
      </field-validator>
  </field>
</validators>

可以通過(guò)獨立的文件來(lái)定義字段驗證

EmployeeAction.properties
errors.required.age.limit=Please provide an age between ${min} and ${max}.

2 簡(jiǎn)化訪(fǎng)問(wèn)數據庫

3 部分使用Spring連接系統原有資源,例如EJB

要使webwork支持spring,只要簡(jiǎn)單的下面的配置即可

web.xml

<context-param>
  <param-name>contextConfigLocation</param-name>
  <param-value>/WEB-INF/classes/net/reumann/demo/spring.xml</param-value>
</context-param>

<listener>
  <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

修改webwork的配置文件objectFactory=spring

webwork.properties

webwork.devMode=false
webwork.objectFactory=spring

然后定義好需要IoC的組件

spring.xml

<beans>
  <!-- DAO Configuration -->
  <bean id="employeeDao" class="net.reumann.demo.persistence.EmployeeNoDBdao" />
  <bean id="departmentDao" class="net.reumann.demo.persistence.DepartmentNoDBdao"/>
  <bean id="employeeAction" class="net.reumann.demo.webwork.employee.EmployeeAction">
    <constructor-arg ref="employeeDao" />
    <constructor-arg ref="departmentDao" />
  </bean>
</beans>

你就可以在action中自由的IoC了

action

public EmployeeAction(EmployeeDao employeeDao,
    DepartmentDao departmentDao) {
  this.employeeDao = employeeDao;
  this.departmentDao = departmentDao;
}

 

頁(yè)面結構設計
1 jsp include (部分使用taglib)
  <webwork:component template=”calendar.vm” label=”Birthdate”
   name=”birthday”>
    <webwork:param name=”showWeekends” value=”true”/>
  </webwork:component>
2 sitemesh
3 使用OA皮膚框架
4 ajax + dojo

業(yè)務(wù)層的設計
1 action中直接調用JDBC SQL/Proc, 即action + jdbc

2 action + service/session bean + dao + jdbc/ibatis/hibernate/entity bean (兩個(gè)接口,兩個(gè)實(shí)現)
public class DepartmentDaoService implements DepartmentService {
  DepartmentDao dao = new DepartmentDaoIbatisImpl();
}

3 沒(méi)有service層,只有action + dao + jdbc/ibatis/hibernate/entity bean ,(如上面的EmployeeAction)

其它一些Struts的比較

Struts不是一個(gè)框架,而是一組項目
兩個(gè)框架:
  Action: Action model
  Shale: Component model
  Action 和 Shale 會(huì )盡可能多的共享代碼
各種子項目,例如Tiles

Struts 2將是Webwork 2.2和一些Struts的特性的結合

Class (re)Loading
1 Java 也可以像腳本語(yǔ)言那樣支持 edit-refresh 風(fēng)格的開(kāi)發(fā)
2 Janino, Eclipse compiler 以及一些其他的編譯器都使用 Commons-JCI is used
3 所有的庫和框架都必須擺脫editcompile-package-deploy-wait-refresh的思想

Webwork 允許動(dòng)態(tài)重新裝載xml配置文件 (例如, 自動(dòng)重新裝載 actions.xml).
webwork.properties: webwork.configuration.xml.reload=true

EclipseWork 是Eclipse的WebWork插件
http://eclipsework.sourceforge.net/

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
整合SSH-4 完成功能.
struts 2 學(xué)習相關(guān)1
webwork參數傳遞心得
webwork攔截器excludeMethods或includeMethods機制
webwork+spring+ibatis存取BLOB字段
webwork2 + spring 結合的幾種方法的小結
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久