LotusBSD

Java学习
数据加载中……
用Lomboz里创建自己的第一个程序HelloApp

根据孙MM的书上而得此文.如何装环境就不用我说了,我博客前面有文章进行介绍,不过这次我装时选择了tomcat5.5,因为6.0的lomboz找不到,所以就选择低版本的了。

新建工程如下:File -> New -> Project... -> Web -> Dynamic Web Project -> Next

输入Project name为"HelloApp",Target Runtime里如果是第一次建的话会是空的,此时要点击"new"来加入一个服务器,我选择tomcat5.5,然后选择tomcat5.5的安装路径后就添加完成了.

添加完Runtime后再点下一步,此时我们可以看到程序已为我们选择了"Dynamic Web Module"和"Java",我们要加选上"Apache Struts"一项,如图:

然后下一步下一步,在"Servlet Name"里填入"action",此时我们要选择"Struts Folder",如下图:

选择好后就可以点"Finish"就可以创建成功了.创建过程中可能要连网下载标签什么的,如果没连网也不要紧,一会儿我们再来解决。如果有弹出页面,点"agree"即可。创建成功后如下图:

下面自己来新建一个Struts Action。在"Java Resources"上右键 -> New -> Other... -> Lomboz Struts -> Struts Action -> Next -> Next,在"java package"里填上"hello",Class Name里填"HelloAction",如下图:

Next后在path里填"/HelloWorld",再新建一个"Action Form",相关参数如下:

然后点击next后,From Bean里填"HelloFrom",在属性里Add一个参数"userName",Action里填"/HelloWorld.do",Input里Add一个页面,folder里选择上"HelloApp/WebContent",name里填"hello.jsp",点击next,去掉"Use Jsp Template"选项,然后finish。此时回到如下界面:

此时点击finish后回到Action界面,在scope里选择"request",validate里选"true",在Input那里choose -> JSP file -> 选择hello.jsp -> finish.然后在forward里添加一个项,Add -> name里填"SayHello" -> Paht里choose后选hello.jsp,然后finish,如下图:

点击"finish"后Action即创建完毕。

下面让我们来加入本地taglib,在本地硬盘上将struts-html.tld、struts-bean.tld和struts-logic.tld复制,然后在工程里的WebContent目录下的WEB-INF目录上右键,Paste即可加入本地taglib,系统会自动更新的,这样便解决了不能远程获取taglib的问题。此时webcontent目录结构如下:

此时我们删掉index.jsp和pages目录吧,这里用不到它们。

下面我们来添加一些东西.打开Java Resources下的MessageResources.properties文件,加入下面内容:

hello.jsp.title=Hello - A first Struts program
hello.jsp.page.heading=Hello World! A first Struts application
hello.jsp.prompt.person=Please enter a Username to say hello to
hello.jsp.page.hello=Hello

hello.dont.talk.to.monster=We don't want to say hello to Monster!
hello.no.username.error=Please enter a <i>Username</i> to say hello to.

然后在Java Resources上右键新建一个类Constants.java,包为hello,勾选上"final",内容如下:

package hello;

public final class Constants {
 public static final String PERSON_KEY="personbean";
}

然后再新建一个类PersonBean.java,包为hello,内容如下:

package hello;

public class PersonBean {

 private String userName=null;
 
 public String getUserName(){
  return this.userName;
 }
 public void setUserName(String userName){
  this.userName=userName;
 }
 public void saveToPersistentStore(){
  
 }
}

修改hello.jsp内容如下:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>

<html:html locale="true">
<head>
<title><bean:message key="hello.jsp.title"/></title>
<html:base/>
</head>

<body bgcolor="white"><p>
<h2><bean:message key="hello.jsp.page.heading"/></h2><p>
<html:errors/>

<logic:present name="personbean" scope="request">
<h2>
<bean:message key="hello.jsp.page.hello"/>
<bean:write name="personbean" property="userName" />!
</h2>
</logic:present>

<html:form action="/HelloWorld.do" focus="userName">
<bean:message key="hello.jsp.prompt.person"/>
<html:text property="userName" size="16" maxlength="16"/><br>
<html:submit property="submit" value="Submit"/>
<html:reset/>
</html:form>

<html:img page="/struts-power.gif" alt="Power by Struts"/>
</body>
</html:html>

修改HelloAction.java内容如下:

package hello;

import java.io.IOException;

import javax.servlet.RequestDispatcher;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.ServletException;

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 org.apache.struts.util.MessageResources;
import org.apache.struts.action.ActionMessage;
import org.apache.struts.action.ActionMessages;

public class HelloAction extends Action {

 public ActionForward execute(ActionMapping mapping,
         ActionForm form,
         HttpServletRequest request,
         HttpServletResponse response)
         throws IOException, ServletException {
  
  
  
  MessageResources messages=getResources(request);
  ActionMessages errors=new ActionMessages();
  String userName=(String)((HelloForm)form).getUserName();
  
  String badUserName="Monster";
  
  if(userName.equalsIgnoreCase(badUserName)){
   errors.add("username",new ActionMessage("hello.dont.talk.to.monster",badUserName));
   saveErrors(request,errors);
   return(new ActionForward(mapping.getInput()));
  }
  
  PersonBean pb=new PersonBean();
  pb.setUserName(userName);
  pb.saveToPersistentStore();
  
  request.setAttribute(Constants.PERSON_KEY,pb);
  request.removeAttribute(mapping.getAttribute());
  
  return mapping.findForward("SayHello");
 }

}

修改HelloFrom.java内容如下:

package hello;

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.ActionMessage;

public class HelloForm extends ActionForm {
 
 private String userName=null;

 public ActionErrors validate(ActionMapping mapping, HttpServletRequest request) {
  ActionErrors errors = new ActionErrors();
  // Validate an attribute named "xxx"
  if( getUserName() == null || getUserName().length() == 0 )
   errors.add("username",new ActionMessage("hello.no.username.error"));
  return errors;
 }
  
 public void reset(ActionMapping mapping, HttpServletRequest request) {
  this.userName=null;
 }
  
 
 public String getUserName(){
  return(this.userName);
 }

 public void setUserName(String userName) {
  this.userName = userName;
 }
 
}

修改web.xml内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<web-app>
 <display-name>
 HelloApp</display-name>
 <servlet>
  <servlet-name>strutsController</servlet-name>
  <servlet-class>
  org.apache.struts.action.ActionServlet</servlet-class>
  <init-param>
   <param-name>config</param-name>
   <param-value>/WEB-INF/struts-config.xml</param-value>
  </init-param>
  <load-on-startup>1</load-on-startup>
 </servlet>
 <servlet-mapping>
  <servlet-name>strutsController</servlet-name>
  <url-pattern>*.do</url-pattern>
 </servlet-mapping>
 <welcome-file-list>
  <welcome-file>hello.jsp</welcome-file>
 </welcome-file-list>
 
 <!-- Struts Tag Library Descrtptors -->
 <taglib>
  <taglib-uri>/WEB-INF/struts-bean.tld</taglib-uri>
  <taglib-location>/WEB-INF/struts-bean.tld</taglib-location>
 </taglib>
 
 <taglib>
  <taglib-uri>/WEB-INF/struts-html.tld</taglib-uri>
  <taglib-location>/WEB-INF/struts-html.tld</taglib-location>
 </taglib>
 
 <taglib>
  <taglib-uri>/WEB-INF/struts-logic.tld</taglib-uri>
  <taglib-location>/WEB-INF/struts-logic.tld</taglib-location>
 </taglib>
</web-app>

修改struts-config.xml内容如下:

<?xml version="1.0" encoding="ISO-8859-1"?>
<struts-config> 
  <form-beans>
    <form-bean name="HelloForm" type="hello.HelloForm"/>
  </form-beans> 
  <action-mappings>
    <action input="/hello.jsp" name="HelloForm" path="/HelloWorld" scope="request" type="hello.HelloAction" validate="true">
      <forward name="SayHello" path="/hello.jsp"/>
    </action>
  </action-mappings>
  <message-resources parameter="MessageResources"/>
</struts-config>

保存后运行看看,在hello.jsp上面点右键 run as -> run on server -> next -> next ->finish,然后在浏览器里输入http://localhost:8080/HelloApp/hello.jsp即可看到如下界面:

程序运行成功。


相关链接http://rooto.blog.sohu.com/45052416.html

posted on 2007-05-07 22:55 LotusBSD 阅读(274) 评论(1)  编辑  收藏

评论

# 成长的足迹 2008-05-26 19:28 马淑萍,刘苗苗,刘莹,苏霞,蕙婵,田敏,范雯靓,崔雪

六年级的留念册
  回复  更多评论    

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


网站导航: