恶补J2EE Web 开发(讲稿大纲)
2008-02-23 09:13:26来源:互联网 阅读 ()
这篇文章是给具备一些基本的J2EE开发的兄弟们看的
1 Webwork 2 作为MVC
要让服务器支持webwork,首先需要对web服务器的web.XML进行配置,这里用/*,表示所有请求都作为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就可以运行了,我们添加两个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>
这里添加了一个action叫做employee,也就是说,所有请求http://site/employee 访问,都被看成触发一个action.其具体内容如下:
这是一个最简单的action,它起到了控制器的作用,实现了CRUD的基本功能,代码非常简介。几乎和PHP,ROR差不多
EmployeeAction.Java
public class EmployeeAction extends ActionSupport implements Preparable {
public String execute() throws Exception { //如果URL没有指定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的,因此上面的控制器对应下面两个模板文件。当然实际应用中不一定所有的界面都要采用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>
我们看到,这个表单非常简单,由于其名字的规范定义。webwork的action响应时,会自己装载其中的变量,和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"/>
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash