根据孙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