Struts1配置及调用过程实例详解 (二)

2014-11-24 09:44:12 · 作者: · 浏览: 5

< xml version="1.0" encoding="ISO-8859-1" >

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







type="com.bjpowernode.struts.LoginAction"
name="loginForm"
scope="request"
>




< xml version="1.0" encoding="ISO-8859-1" >

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







type="com.bjpowernode.struts.LoginAction"
name="loginForm"
scope="request"
>




配置的是装载表单数据的java类的路径。标签中所path属性值为请求路径 ,type表示真正的请求对象,也就是上文中提到的RealAction。name 为装载表单数据的AcitonForm类,对应于相应的标签对应便是各种条件下的跳转页面了。
转载页面表单信息的LoginActionForm(即上文中提到的ActionForm):


[java]
package com.bjpowernode.struts;

import org.apache.struts.action.ActionForm;

@SuppressWarnings("serial")
public class LoginActionForm extends ActionForm {

private String username;

private String password;

public String getUsername() {
return username;
}

public void setUsername(String username) {
this.username = username;
}

public String getPassword() {
return password;
}

public void setPassword(String password) {
this.password = password;
}
}

package com.bjpowernode.struts;

import org.apache.struts.action.ActionForm;

@SuppressWarnings("serial")
public class LoginActionForm extends ActionForm {

private String username;

private String password;

public String getUsername() {
return username;
}

public void setUsername(String username) {
this.username = username;
}

public String getPassword() {
return password;
}

public void setPassword(String password) {
this.password = password;
}
}

接下来是最能体现Struts统一控制的LoginAction(即上文中提到的RealAction)中的代码,该java类具有一个execute函数,所有的业务逻辑操作以及操作的返回结果及决定跳转界面的操作均在该函数中进行:


[java]
package com.bjpowernode.struts;

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 {

@Override
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {

LoginActionForm laf = (LoginActionForm)form;
String username = laf.getUsername();
String password = laf.getPassword();
if("admin".equals(username) && "admin".equals(password)){
//登录成功
return mapping.findForward("success");
}else{
//登录失败
return mapping.findForward("error");
}
}
}

package com.bjpowernode.struts;

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 Act