我的第一个struts程序(一)

最近刚开始学struts,打算把学习进程和自己的一些心得记下来,一方面激励自己每天都要收获一点点,另一方面还请各位高手多多指点,不管是技术上的还是方法上的。

我也使从最简单也是最经典的东西做起的,简单用户登陆,个人觉得这个例子最有代表性了。

一:建两个jsp文件,用于页面的显示

login.jsp(登陆页面)
---------------------

<%@ page contentType="text/html; charset=GBK" %>
<%@ taglib uri="/tags/struts-bean" prefix="bean" %>
<%@ taglib uri="/tags/struts-logic" prefix="logic" %>
<%@ taglib uri="/tags/struts-html" prefix="html" %>
<%@ taglib uri="/tags/struts-nested" prefix="nested" %>
<html:html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GBK"/>
<title></title>
</head>
<body>
<html:form method="POST" action="loginAction.do">
<html:text property="name"></html:text>
<html:password property="password"></html:password>
<html:submit></html:submit>
</html:form>
</body>
</html:html>

这个页面完成用户表单填写,并提交用户信息。

注意这里的表单元素text和password的property属性必须同Form类中的属性名字一样,因为在表单提交之后,Struts按照表单元素的内容,自动给Form类中的相应字段一一赋值。



index.jsp(登陆成功之后显示页面)
------------------------------
<%@page pageEncoding="GBK" contentType="text/html; charset=GBK" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GBK"/>
<title></title>
</head>
<body>
Succ!
</body>
</html>

这个页面中只简单的显示登陆成功的信息。

二:编写LoginActionForm类

package test;

import org.apache.struts.action.ActionForm;

public class LoginActionForm extends ActionForm {
String name;
String password;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}

}

此类中应注意的是其name和password属性必须和Login.jsp文件中的一样。


三:编写LoginAction类

package test;

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 {

public ActionForward execute(ActionMapping arg0, ActionForm arg1, HttpServletRequest arg2, HttpServletResponse arg3) throws Exception {
LoginActionForm loginActionForm=(LoginActionForm)arg1;
String name=loginActionForm.getName();
String password=loginActionForm.getPassword();
if(name.equals(password))
return(arg0.findForward("succ"));
else
return(arg0.findForward("fail"));
}
}

此类是struts中最重要的类,主要完成业务逻辑的处理。在这里进行了简单的判断,如果符合用户名和密码相等这一条件,即转向登陆成功页面,否则转向登陆失败页面

 

四:配置struts-config.xml文件

<?xml version="1.0"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd">
<struts-config>
<data-sources>
</data-sources>
<form-beans>
<form-bean name="loginActionForm" type="test.LoginActionForm"></form-bean>
</form-beans>
<global-exceptions>
</global-exceptions>
<global-forwards>
</global-forwards>
<action-mappings>
<action path="/loginAction" name="loginActionForm" type="test.LoginAction">
<forward name="succ" path="/index.jsp"></forward>
<forward name="fail" path="/login.jsp"></forward>
</action>
</action-mappings>
<controller processorClass="org.apache.struts.tiles.TilesRequestProcessor"/>
<message-resources parameter="MessageResources"/>
<plug-in className="org.apache.struts.tiles.TilesPlugin">
<set-property property="definitions-config" value="/WEB-INF/tiles-defs.xml"/>
<set-property property="moduleAware" value="true"/>
</plug-in>
<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>

在这个文件中,需要填写的配置为

1:

<form-beans>
<form-bean name="loginActionForm" type="test.LoginActionForm"></form-bean>
</form-beans>
这个表单bean完成将用户提交的表单内容按照各个元素给bean的属性赋值

2:

<action-mappings>
<action path="/loginAction" name="loginActionForm" type="test.LoginAction">
<forward name="succ" path="/index.jsp"></forward>
<forward name="fail" path="/login.jsp"></forward>
</action>
</action-mappings>

这里的action标签中path属性被用于同action的请求相匹配。

在login.jsp中,action="loginAction.do",则与之匹配的Action就是loginAction

name属性表明调用的ActionForm类,在这里当然就是表单bean

forward标签说明了转向的匹配,在loginAction中

if(name.equals(password))
return(arg0.findForward("succ"));
else
return(arg0.findForward("fail"));

其中的"succ","fail"就对应于forword的name属性,而path属性则指明了转向页面存放的路径。

这样,第一个struts程序就完成了,当登陆时,输入用户名和密码相同,显示Succ!提示信息,否则,返回原登陆页面。

以上主要写了一些我在做的时候注意到的一些问题,也可能是初学者最容易犯的一些错误。

END!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值