第一个Struts程序

Posted 谁能告诉我是对还是错

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第一个Struts程序相关的知识,希望对你有一定的参考价值。

1.配置好TOMCAT服务器,设置/mldn为访问路径,F:/mldnweb为真实路径;

2.配置Struts:

  拷贝文件:

  (1)将Struts开发包中lib目录下的全部*.jar包复制到%TOMCAT_HOME%\lib目录中,即F:\mldnweb\WEB-INF\lib目录中(或D:\ProgramFiles\Tomcat 8.5\lib目录中)

  (2)将Struts开发包中lib目录下的struts-taglib-1.3.10.jar文件解压,将解压后\struts-taglib-1.3.10\META-INF\tld目录下的所有*.tld文件拷贝至F:\mldnweb\WEB-INF目录下(该目录位置与后续F:\mldnweb\WEB-INF目录中web-xml中配置的tld文件路径位置对应即可),包括struts-bean.tld、struts-html.tld及struts-logic.tld等

  配置文件:

  (1)F:\mldnweb\WEB-INF目录中web-xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.5" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<servlet>
<servlet-name>action</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>
<init-param>
<param-name>debug</param-name>
<param-value>3</param-value>
</init-param>
<init-param>
<param-name>detail</param-name>
<param-value>3</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<jsp-config>
<taglib>
<taglib-uri>http://struts.apache.org/tags-bean</taglib-uri>
<taglib-location>/WEB-INF/strus-bean.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://struts.apache.org/tags-html</taglib-uri>
<taglib-location>/WEB-INF/strus-html.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://struts.apache.org/tags-logic</taglib-uri>
<taglib-location>/WEB-INF/strus-logic.tld</taglib-location>
</taglib>
</jsp-config>
</web-app>

  (2)F:\mldnweb\WEB-INF目录中struts-config.xml文件:

 <?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.3//EN" "http://struts.apache.org/dtds/struts-config_1_3.dtd">

<struts-config>
<form-beans>
<form-bean name="helloForm"
type="org.lxh.struts.form.HelloForm" />
</form-beans>

<global-exceptions />
<global-forwards />
<action-mappings>
<action attribute="helloForm" input="/hello.jsp"
name="helloForm" path="/hello" scope="request"
type="org.lxh.struts.action.HelloAction">
<forward name="show" path="/hello.jsp"></forward>
</action>
</action-mappings>

<message-resources parameter="org.lxh.struts.ApplicationResources" />
</struts-config>

3.编写代码:

  (1)F:\mldnweb\目录中的hello.jsp文件:

     <%@ page contentType="text/html" pageEncoding="GBK"%>

<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean"%>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html"%>
<%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic"%>
<html:html lang="true">
<head>
<title>hello.jsp</title>
</head>
<body>
<html:errors/>
<logic:present name="msg" scope="request">
<h2>${msg}</h2>
</logic:present>
<html:form action="hello.do" method="post">
请输入信息:<html:text property="info"></html:text>
<html:submit value="显示"></html:submit>
</html:form>
</body>
</html:html>

  (2)F:\mldnweb\WEB-INF\classes目录中的HelloAction.java文件:

/*
* Generated by MyEclipse Struts
* Template path: templates/java/JavaClass.vtl
*/
package org.lxh.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 org.lxh.struts.form.HelloForm;

/**
* MyEclipse Struts Creation date: 07-09-2009
*
* XDoclet definition:
*
* @struts.action path="/hello" name="helloForm" input="/hello.jsp"
* scope="request" validate="true"
*/
public class HelloAction extends Action {
/*
* Generated Methods
*/

/**
* Method execute
*
* @param mapping
* @param form
* @param request
* @param response
* @return ActionForward
*/
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
HelloForm helloForm = (HelloForm) form;// TODO Auto-generated method
String info = helloForm.getInfo(); // 所有的输入内容从ActionForm取出
request.setAttribute("msg", info); // 将信息设置在request范围之中
return mapping.findForward("show"); // 此处返回的是一个映射的路径
}
}

  (3)F:\mldnweb\WEB-INF\classes目录中的HelloForm.java文件:

/*
* Generated by MyEclipse Struts
* Template path: templates/java/JavaClass.vtl
*/
package org.lxh.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.ActionMessage;

/**
* MyEclipse Struts Creation date: 07-09-2009
*
* XDoclet definition:
*
* @struts.form name="helloForm"
*/
public class HelloForm extends ActionForm {
/*
* Generated fields
*/

/** info property */
private String info;

/*
* Generated Methods
*/

/**
* Method validate
*
* @param mapping
* @param request
* @return ActionErrors
*/
public ActionErrors validate(ActionMapping mapping,
HttpServletRequest request) {
ActionErrors errors = new ActionErrors();
if (this.info == null || "".equals(this.info)) { // info的输入内容为空
// 现在应该保存错误信息
errors.add("info", new ActionMessage("error.info"));
}
return errors;
}

/**
* Method reset
*
* @param mapping
* @param request
*/
public void reset(ActionMapping mapping, HttpServletRequest request) {
// TODO Auto-generated method stub
}

/**
* Returns the info.
*
* @return String
*/
public String getInfo() {
return info;
}

/**
* Set the info.
*
* @param info
* The info to set
*/
public void setInfo(String info) {
this.info = info;
}
}

以上是关于第一个Struts程序的主要内容,如果未能解决你的问题,请参考以下文章

第一个Struts程序

第一个Struts2程序之HelloWorld

运行第一个struts2程序遇到的问题

Struts第一个程序。

struts2第一个程序 Helloworld

Struts2学习第二课 Struts2概述