在MyEclipse 开发工具中创建基于Struts框架的J2EE Web应用系统示例
杨教授大学堂 精心创作的优秀程序员 职业提升必读系列资料 在MyEclipse开发工具中创建基于Struts框架的J2EE Web应用系统
示例
1.1.1 本示例的系统环境
1、运行环境
软件名称 下载地址 版本
Sun JDK 1.5.0
Eclipse
MyEclipse 4.1.0
Tomcat 5.5 2、示例程序功能简介
本文是用户登陆的实例,如果用户登陆成功进入程序的主界面(main.jsp),否则返回登陆页面并提示错误信息。
1.1.2 创建本示例的Web应用项目
1、新建基于Struts框架的J2EE Web项目,项目名称为logintest
在菜单中依次点击File?New?Project,然后在弹出的窗口中选择J2EE?Web Project,启动Web项目创建向导。
杨教授大学堂,版权所有,盗版必究。 1/12页
杨教授大学堂 精心创作的优秀程序员 职业提升必读系列资料
点击下一步,在项目名称中,输入logintest,然后修改Context root URL为/logintest,其他我们使用默认的设置,最后点击Finish按钮完成创建工作。
杨教授大学堂,版权所有,盗版必究。 2/12页
杨教授大学堂 精心创作的优秀程序员 职业提升必读系列资料
2、在项目创建后,需要让它支持Struts功能
在菜单中选择MyEclipse?Add Struts Capabilities。在弹出的对话框中, 将Struts specification修改为1.2,将Base package for new classes修改为目标包名,如com.study.struts,修改完成后点击Finish按钮。
杨教授大学堂,版权所有,盗版必究。 3/12页
杨教授大学堂 精心创作的优秀程序员 职业提升必读系列资料
在Package Explore中,可以看到增加了Struts能力后,MyEclipse在Web项目中增加了很多jar文件和tld文件,请参考下图:
3、设计struts-config.xml配置文件
杨教授大学堂,版权所有,盗版必究。 4/12页
杨教授大学堂 精心创作的优秀程序员 职业提升必读系列资料
4、struts-config.xml配置文件的最终代码
5、设计和实现本示例的JSP页面
杨教授大学堂,版权所有,盗版必究。 5/12页
杨教授大学堂 精心创作的优秀程序员 职业提升必读系列资料 <%@ page language="java"%>
<%@ taglib uri="; prefix="bean"%> <%@ taglib uri="; prefix="html"%>
6、设计对页面中的
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
单进行数据封装的FormBean组件程序类
在我们的登陆程序中需要用户提交用户名和密码,因此我们需要创建一个ActionFor
m Bean来保存提交的HTML表单数据。将源代码窗口中的标签切换到struts-config.xml,
右上角的Outline窗口内容如下:
杨教授大学堂,版权所有,盗版必究。 6/12页
杨教授大学堂 精心创作的优秀程序员 职业提升必读系列资料
选中其中的form-beans,右键单击,在弹出的菜单中选择New Form。在Form Bean创建向导对话框中,输入Use case的名字login,然后在下方的Form Properties中增加name和password两个属性。(例子暂时未设置validate
方法
快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载
和reset方法)
最终的LoginForm程序类的的示例:
package com.yourcompany.struts.form; import javax.servlet.http.HttpServletRequest; import org.apache.struts.action.ActionErrors; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionMapping; import org.apache.struts.action.ActionError; public class LoginForm extends ActionForm {
private String name;
private String pwd;
public ActionErrors validate(ActionMapping mapping,
杨教授大学堂,版权所有,盗版必究。 7/12页
杨教授大学堂 精心创作的优秀程序员 职业提升必读系列资料
HttpServletRequest request) {
ActionErrors errors=new ActionErrors();
if (name== null || name.equals("")){
errors.add("name", new ActionError("logintest.error.name"));
}
if (pwd == null || pwd.equals("")){
errors.add("pwd", new ActionError("logintest.error.password"));
}
System.out.println(errors.toString());
return errors;
}
public void reset(ActionMapping mapping, HttpServletRequest request) {
name=null;
pwd=null;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
}
7、设计和编程实现对页面表单进行请求响应的系统后台Action程序类
杨教授大学堂,版权所有,盗版必究。 8/12页
杨教授大学堂 精心创作的优秀程序员 职业提升必读系列资料
在完成上面的创建后,接下来创建Action类。在源代码窗口中切换到struts-config.xml文件,点击左侧工具栏中的。在弹出的创建向导中输入Use case名字为LoginAction。
在对话框的下部Optional Details中,点击Name行末的Browse按钮,选中刚才创建的LoginForm。
package com.yourcompany.struts.action; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts.action.Action; import org.apache.struts.action.ActionError; import org.apache.struts.action.ActionErrors; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; import org.apache.struts.action.ActionMessage; import org.apache.struts.action.ActionMessages; import com.yourcompany.VO.ClientBean; import com.yourcompany.struts.form.LoginForm; public class LoginAction extends Action {
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
LoginForm loginForm = (LoginForm) form;
String name=loginForm.getName();
String pwd=loginForm.getPwd();
ActionErrors error=new ActionErrors();
ClientBean client=new ClientBean();
if (name.equals("student")&&pwd.equals("student")){
client.setName(name);
client.setPwd(pwd);
杨教授大学堂,版权所有,盗版必究。 9/12页
杨教授大学堂 精心创作的优秀程序员 职业提升必读系列资料
request.setAttribute("client",client);
System.out.println(client.toString());
return(mapping.findForward("success"));
}
error.add("name",new ActionError("login.action.error"));
this.saveErrors(request, error);
return mapping.getInputForward();
}
}
8、设计用于封装登录客户信息的实体类ClienBean
package com.yourcompany.VO;
public class ClientBean {
private String name=null;
private String pwd=null;
public ClientBean(){
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
}
9、设计系统配置ApplicationResources.properties文件
杨教授大学堂,版权所有,盗版必究。 10/12页
杨教授大学堂 精心创作的优秀程序员 职业提升必读系列资料 logintest.title=struts login test
logintest.login.name=name
logintest.password=password
error logintest.error.name=name
logintest.error.password=password error
login.action.error=error happened in Action 10、部署本示例项目
11、测试本示例项目
(1)启动测试页面
(2)在测试表单中输入相关的测试信息
杨教授大学堂,版权所有,盗版必究。 11/12页
杨教授大学堂 精心创作的优秀程序员 职业提升必读系列资料
(3)登录成功后的系统提示信息
(4)登录失败后的系统提示信息
ActionForm中validate()验证失败,返回如下的错误信息:
在Action中验证失败用户帐号不存在或者密码错误:
杨教授大学堂,版权所有,盗版必究。 12/12页