Struts1入门

环境搭建:创建Web工程,在Eclipse IDE中新建Dynamic Web Project

在WebContent/WEB-INF/lib目录下,导入jar包,如图所示:

图1 


简单的方法是将Struts1下载文件中/webapps/struts-blank.war解压缩,将WEB-INF/lib目录下的jar包复制过去


在WEB-INF目录下将若干文件导入,如图所示:

图2 


package mypack;

import javax.servlet.http.HttpServletRequest;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionError;
import org.apache.struts.action.ActionErrors;

public class LoginForm extends ActionForm {

	private String password = null;
	private String username = null;

	// Password Accessors
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	
	// Username Accessors
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}
  // This method is called with every request. It resets the Form
  // attribute prior to setting the values in the new request.
	public void reset(ActionMapping mapping, HttpServletRequest request) {
		this.password = null;
		this.username = null;
	}


	public ActionErrors validate(ActionMapping arg0,HttpServletRequest arg1){
		ActionErrors errors=new ActionErrors();
		if(username==null || username.equals("") ){
			errors.add("username",new ActionError("error.username"));
		}
		return errors;
	}
}


分别创建login.jsp  welcome.jsp与error.jsp,具体如下:

welcome.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title><bean:message key="app.title" /></title>
</head>
<body>
	<b><bean:message key="app.hello" />: <%= request.getAttribute("USER") %></b>
</body>
</html>

login.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title><bean:message key="app.title"/></title>
</head>
<body>
<html:errors />
  <html:form action="login.do" method="POST"    > 
    <table >
      <tr>
        <td><bean:message key="app.username"/>:</td>
        <td><html:text property="username" /></td>
      </tr>
      <tr>
        <td><bean:message key="app.password"/>:</td>
        <td><html:password property="password" /></td>
      </tr>
      <tr>
        <td colspan="2" align="center"><html:submit /></td>
      </tr>
    </table>
  </html:form> 
</body>
</html>

error.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title><bean:message key="app.title" /></title>
</head>
<body>
	<b><bean:message key="app.loginerror" />
	<a href="login.jsp"><bean:message key="app.loginagain" /></a></b>
</body>
</html>


在WEB-INF/classes目录下,新建resources目录,存放application.properties

# --helloapp
app.title=helloapp
app.username= User Name
app.password=Password
app.hello=Welcome
app.loginerror=Your username or password are invalid. 
app.loginagain=Login Again 
error.username=<font color="red">Please input username</font>

java代码:

LoginAction.java

package mypack;

import java.io.IOException;
import javax.servlet.ServletException;
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;

public class LoginAction extends Action {

	protected String checkUser(String username, String password) {
		String user = null;
		// You would normally do some real User lookup here, but
		// for this example we will have only one valid username "swq"
		if ( username.equals("abc") && password.equals("1234") ) {
			user = new String("Java Coder");
		}
		return user;
	}

	public ActionForward execute(ActionMapping mapping,ActionForm form,
		HttpServletRequest request,HttpServletResponse response)
		throws IOException, ServletException {
		String user = null;
		// Default target to success
		String target = new String("success");

		// Use the LoginForm to get the request parameters
		String username = ((LoginForm)form).getUsername();
		String password = ((LoginForm)form).getPassword();

		user = checkUser(username, password);

		// Set the target to failure
		if ( user == null ) {
			((LoginForm)form).setUsername("username");
			((LoginForm)form).setPassword("password");
			target = new String("failure");
		}
		else {
			request.setAttribute("USER", user);
		}
		// Forward to the appropriate View
		return (mapping.findForward(target));
		}
}

LoginForm.java

package mypack;

import javax.servlet.http.HttpServletRequest;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionError;
import org.apache.struts.action.ActionErrors;

public class LoginForm extends ActionForm {

	private String password = null;
	private String username = null;

	// Password Accessors
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	
	// Username Accessors
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}
  // This method is called with every request. It resets the Form
  // attribute prior to setting the values in the new request.
	public void reset(ActionMapping mapping, HttpServletRequest request) {
		this.password = null;
		this.username = null;
	}


	public ActionErrors validate(ActionMapping arg0,HttpServletRequest arg1){
		ActionErrors errors=new ActionErrors();
		if(username==null || username.equals("") ){
			errors.add("username",new ActionError("error.username"));
		}
		return errors;
	}
}

完整的工程视图:

图3


修改struts-config.xml配置文件

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

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

<struts-config>

<!-- ================================================ Form Bean Definitions -->

    <form-beans>
    	<form-bean name="loginForm" type="mypack.LoginForm"></form-bean>
    </form-beans>


<!-- ========================================= Global Exception Definitions -->

    <global-exceptions>
        <!-- sample exception handler
        <exception
            key="expired.password"
            type="app.ExpiredPasswordException"
            path="/changePassword.jsp"/>
        end sample -->
    </global-exceptions>


<!-- =========================================== Global Forward Definitions -->

    <global-forwards>
        <!-- Default forward to "Welcome" action -->
        <!-- Demonstrates using index.jsp to forward -->
        <forward
            name="welcome"
            path="/Welcome.do"/>
    </global-forwards>


<!-- =========================================== Action Mapping Definitions -->

    <action-mappings>
        <action path="/login" type="mypack.LoginAction" 
			name="loginForm" scope="session" 
			input="/login.jsp"
			validate="true"  >
			<forward name="success" path="/welcome.jsp" />
			<forward name="failure" path="/error.jsp" />
		</action>
    </action-mappings>


<!-- ============================================= Controller Configuration -->

    <controller processorClass="org.apache.struts.tiles.TilesRequestProcessor"/>


<!-- ======================================== Message Resources Definitions -->
    <message-resources parameter="resources.application" />


<!-- =============================================== Plug Ins Configuration -->
  <!-- ======================================================= Tiles plugin -->
    <plug-in className="org.apache.struts.tiles.TilesPlugin" >
      <!-- Path to XML definition file -->
      <set-property property="definitions-config" value="/WEB-INF/tiles-defs.xml" />
      <!-- Set Module-awareness to true -->
      <set-property property="moduleAware" value="true" />
      <set-property property="definitions-parser-validate" value="true" />
    </plug-in>

  <!-- =================================================== Validator plugin -->
  <plug-in className="org.apache.struts.validator.ValidatorPlugIn">
    <set-property  property="pathnames" value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml"/>
  </plug-in>
</struts-config>

启动Tomcat服务器,在地址栏输入:http://localhost:8080/MyStruts1/login.jsp,出现界面:

图4


输入用户名:abc,密码:1234,提交表单,出现页面:

图5


如果验证不通过,出现界面:

图6


到此,一个完整的Struts1工程示例结束


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值