利用Myeclipse开发struts应用程序

 

开发环境:
  jdk5.0
  eclipse3.1M7
  myeclipse3.84
  tomcat5.0.28
  
  简介:
  文本主要介绍用myeclipse的struts designer(图形化开发环境)开发一个简单的用户登录程序片段。
  主要包括2个jsp文件、一个ActionForm、一个Action等其它
  userLogin.jsp(用户登录及错误提示页面) userLoginSuccess.jsp(提示登录成功页面)
  UserLoginForm.java(ActionForm,存放用户提交信息)
  UserLoginAction.java(Action,简单的处理用户登录事件)
  
  开始吧
  首先我们先建立一个j2ee的web project.如图1:
  

 


  点击next,Project name输入LoginDemo,其余保持默认,点击finish.
  在package explorer下,就可以看到我们的项目了,然后给这个项目添加Struts框架必要的文件.在我们项目名上点击右键,选择MyEclipes --> Add Struts Capabilities...弹出对话框图2:
  

 


  其中Struts config path就是我们的struts配置文件,URL pattern我们选择*.do,Default application resource为我们默认的资源文件地方,你可以选择它的存储位置,我们在这里保持默认。点击Finish后,项目结构类似于图3:
  

 


  现在就来开始我们的例子吧。首先修改/WEB-INF/web.xml文件,为其添加标签库(在使用中发现,不添加也能成功。但为了保持书上一致,还是添加安全些。hoho~~)将下面代码添加至 </webapp> 上面:
  
  <taglib>
  <taglib-uri>/tags/struts-html</taglib-uri>
  <taglib-location>/WEB-INF/struts-html.tld</taglib-location>
  </taglib>
  
  <taglib>
  <taglib-uri>/tags/struts-bean</taglib-uri>
  <taglib-location>/WEB-INF/struts-bean.tld</taglib-location>
  </taglib>
  
  <taglib>
  <taglib-uri>/tags/struts-logic</taglib-uri>
  <taglib-location>/WEB-INF/struts-logic.tld</taglib-location>
  </taglib>
  完成后,打开struts-config.xml文件,点击这个界面左下角的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完成。
  完成后,struts-config.xml文件自动被更新,可视化界在上也出现了刚新建的JSP模块。新建的jsp文件也被打开了。
  覆盖所有的<%@ taglib ...... 为我们开始在/WEB-INF/web.xml中定义的:
  
  <%@ taglib uri="/tags/struts-html" prefix="html"%>
  <%@ taglib uri="/tags/struts-bean" prefix="bean"%>
  <%@ taglib uri="/tags/struts-logic" prefix="logic"%>
  
  然后在<body></body>中添加:
  Hello <bean:write name="userName" scope="request" /> .
  这里将request中的属性userName输出在页面上,所以等下我们在UserLoginAction中,登录成功后要设置一个相关属性。
  
  OK,下面来开始我们最后三个文件的设计吧。在Struts-config.xml的Design模式中,在画版的空白区域点右键,选择New --> New Form, Action and JSP 弹出ActionForm的选项面板,我们按图上输入相关值,图5:
  

 


  在Optional Details的Form Properties选项卡,点add为这个ActionForm添加相关值,在这个登录示例中,将添加两个属性userName和password,图6:
  

 


  在添加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:
  

 


  在用浏览器上打开:http://127.0.0.1:8080/LoginDemo/userLogin.jsp
  输入密码123456,用户名EricHe。显示成功:
  


  如果输错,或不输入,则无反映又回到当前登录页面(因为我们没有设置错误信息)。

posted on 2006-09-09 22:51 ^小^齐^ 阅读(1878) 评论(9)  编辑  收藏 所属分类: struts

评论

# re: 利用Myeclipse开发struts应用程序 2006-09-17 13:10 Supergoal

MyEclipse自带的部署功能是我比较看中的,在BEA Workshop里面似乎还没有整合类似的插件。  回复  更多评论   

# re: 利用Myeclipse开发struts应用程序 2006-11-19 16:34 andy.liu

我按照你的步骤一步步来做的。但是运行时老是报出异常啊;
能告诉我怎么解决吗?
javax.servlet.ServletException: Cannot find ActionMappings or ActionFormBeans collection
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:867)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:800)
org.apache.jsp.form.userLogin_jsp._jspService(userLogin_jsp.java:74)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:133)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:311)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:301)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:248)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)

网上查了很多文档,尝试了一些,但是没解决。是不是用myeclipse4.1.1开发和发布struts1.1有问题啊?请指教。这个问题真让人抓狂啊。
  回复  更多评论   

# re: 利用Myeclipse开发struts应用程序 2006-11-26 10:17 大撒犯得上

对啊有错误,哥们到底怎么回事啊。是不是你弄这个是玩我们的啊  回复  更多评论   

# re: 利用Myeclipse开发struts应用程序 2006-11-26 18:59 hrocket

@andy.liu
Cannot find ActionMappings or ActionFormBeans collection 这个提示你,你的action可能配置错了吧,搞这个是挺麻烦的,一不小心就会弄错!另外这个代码也是我转载别人,我也没有试过!不好意思,自己慢慢调哈  回复  更多评论   

# re: 利用Myeclipse开发struts应用程序 2006-11-26 19:01 hrocket

@大撒犯得上
不好意思这位兄弟,你要是觉得我是耍你的,你完全可以不用这个去试,我个人能力有限,你自己慢慢搞!  回复  更多评论   

# re: 利用Myeclipse开发struts应用程序 2006-11-29 09:40 leifeng

没有试过,
感觉可以的把  回复  更多评论   

# re: 利用Myeclipse开发struts应用程序 2006-12-12 16:24 JAVA小菜鸟

我是新人 不过他说的是老版的 有新的嘛   回复  更多评论   

# re: 利用Myeclipse开发struts应用程序 2006-12-30 11:42 马哥

很好啊?这个哥们谢谢你了
有事情的话加QQ:562852591  回复  更多评论   

# re: 利用Myeclipse开发struts应用程序 2007-01-02 19:29 E

不错的,谢谢,有个问题提醒一下....见下文ZZ

如果直接在MyEclipse生成的web.xml的<web-app></web-app>中添加<taglib>标签的话会出错。这是因为MyEclipse在生成web工程时,产生的web.xml文件中的<web-app>标签是这样的:

<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"">http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

而不是:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/j2ee/dtds/web-app_2_3.dtd">

<web-app>
......
</web-app>

应该是与xml schema有关。

正确方法应该是用<jsp-config></jsp-config>把tiglib包含起来即可以排除错误。此外,有些web.xml的可视化编辑不加<jsp-config>的话认不出taglib的内容。所以,最好还是加上去。
  回复  更多评论   


只有注册用户登录后才能发表评论。


网站导航:
 
<2006年12月>
262728293012
3456789
10111213141516
17181920212223
24252627282930
31123456

导航

统计

常用链接

留言簿(3)

随笔分类

随笔档案

相册

我喜欢去的地方

搜索

最新评论

阅读排行榜

评论排行榜