利用Myeclipse快速开发struts应用程序
这篇我在是以前版本上的修正版^对新手有帮助咯!! |
开发环境: |
简介: |
开始吧 |
首先我们先建立一个j2ee的web project.如图1: |
在package explorer下,就可以看到我们的项目了,然后给这个项目添加Struts框架必要的文件.在我们项目名上点击右键,选择MyEclipes --> Add Struts Capabilities...弹出对话框图2:
其中Struts config path就是我们的struts配置文件,URL pattern我们选择*.do,Default application resource为我们默认的资源文件地方,你可以选择它的存储位置,我们在这里保持默认。点击Finish后,项目结构类似于图3:
现在就来开始我们的例子吧。点击这个界面左下角的Design进入可视化设计界面。有没有注意右边的Palette :) 点击它,让我们来开始我们的jsp页面设计。我们先建立userLoginSuccess.jsp文件,为啥先建这一个呢?等下就知道了,在myeclipse中可以一次性把我们的Action,ActionForm,Jsp文件一次建好(将三个有关联的文件等下创建)。
点击Palette面版上的创建JSP文件图标,弹出创建JSP文件面板。图4:
在File Name里输入userLoginSuccess.jsp,Template to use选择2] Standard JSP using Struts 1.1,点击Finish完成。 |
OK,下面来开始我们最后三个文件的设计吧。在Struts-config.xml的Design模式中,在画版的空白区域点右键,选择New --> New Form, Action and JSP 弹出ActionForm的选项面板,我们按图上输入相关值,图5: |
在添加password时,注意将JSP input type 下拉框选择password.
完成这步后,我们就将ActionForm设计完成。
接下来选择 Optional Details的JSP选项卡,我们选中Create JSP form? 这一步myeclipse将为我们创建一个简单的与用户交互的登录页面。保持内容和图7一样。图7:
因为我们这只是简单的演示一个登录片段,所以不用验证用户信息是否合法,所以将 Option Details的method选项卡的新建方法去掉,如图8:
点Next,进入Action选项面板.将Option Details的Form选项卡中Validate Form取消选择,如图9:
然后在Forwards选项卡中点add添加成功和失败返回的页面.如图10:
点击Finish完成。在Struts-config.xml的Design中,可以看到图11所示:
最后,简单的修改一下userLogin.jsp,将所有<%@ taglib ...%>替换为:
<%@ taglib uri="/tags/struts-html" prefix="html"%>
<%@ taglib uri="/tags/struts-bean" prefix="bean"%>
修改UserLoginAction中的execute片段为如下所示,图12:
OK,完成。。。下面就部暑项目,测试。。。 | ||||
像为项目添加Struts框架一样,在项目名上右击,选择MyEclipse --> Add and Remove Project development. 在弹出对话框上,单击add ,在弹出的 New Deployment 对话框上,Server选Tomcat5,点击Finish完成部署,如图13:
1.附[加入数据库以进行身份验证] import javax.servlet.http.HttpServletRequest; import org.apache.struts.action.Action; import com.yourcompany.struts.form.UserLoginForm;
public ActionForward execute(ActionMapping mapping, ActionForm form, // DBbase myDb=new DBbase(); |
OK好了!
2.附[将数据库封装成一个bean类]
(1)在项目中增加一个数据库封装类DBbase.java
//package com.yourcompany.struts.action;
import java.sql.*;
public class DBbase {
String sDBDriver = "sun.jdbc.odbc.JdbcOdbcDriver";
String sConnstr = "jdbc:odbc:test";
Connection connect = null;
ResultSet rs = null;
Statement stmt = null;
public DBbase()
{
try
{
Class.forName(sDBDriver);
}
catch(ClassNotFoundException ex)
{
System.err.println(ex.getMessage());
}
}
public ResultSet executeQuery(String sql)
{
try
{
this.connect = DriverManager.getConnection(sConnstr);
this.stmt = this.connect.createStatement();
rs = stmt.executeQuery(sql);
}
catch(SQLException ex)
{
System.err.println(ex.getMessage());
}
return rs;
}
public int executeUpdate(String sql)
{
int result = 0;
try
{
this.connect = DriverManager.getConnection(sConnstr);
this.stmt = this.connect.createStatement();
result = stmt.executeUpdate(sql);
}
catch(SQLException ex)
{
System.err.println(ex.getMessage());
}
return result;
}
public void close(){
if(connect !=null){
try{
connect.close();
connect=null;
}catch(SQLException ex){
System.err.print(ex.getMessage());
}
}
}
}
(2)修改类UserLoginAction
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.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import java.sql.*;
//若不在同一包则,要引入封装数据库所在的包
import com.yourcompany.struts.form.UserLoginForm;
public class UserLoginAction extends Action {
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
UserLoginForm userLoginForm = (UserLoginForm) form;
String name = userLoginForm.getUserName();
String password = userLoginForm.getPassword();
String sql = "select * from userid where name = '" + name
+ "' and psw = '" + password + "'";
DBbase myDb = new DBbase();
ResultSet rs = null;
try {
rs = myDb.executeQuery(sql);
if (rs.next()) {
request.setAttribute("userName", name);
return mapping.findForward("success");
}
} catch (SQLException ex) {
ex.printStackTrace();
}
return mapping.findForward("failure");
}
}
运行效果如上!!!