struts1.2简单范例复习

在MyEclipse中新建项目,在MyEclipse→Java Enterprise Projects中选择Web Project。eclipse中为MeEclipse→J2EE Projects,两者是一样的。

Project Name命名为:StrutsProject

项目新建之后,MyEclipse会自动编译。让人感觉很糟糕的是index.jsp文件默认就有警告!

The import java.util is never used

尽管只是一个导入包没有使用的提示,但是这样很不人性化!

将第一句话<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>

改为<%@ page language="java" contentType="text/html;charset=gb2312"%>即可消除警告!

开发过程:

1、为项目添加Struts支持

项目名右键→MyEclipse→Add Struts Capabilities...

Struts Specification:选择Struts1.2

Base Package for new classes:更改包名→cn.bupt.wj.struts

Struts config path:/WEB-INF/struts-config.xml

ActionServlet name:action

URL pattern:*.do

点击完成之后,项目中就会添入很多的jar文件。

在WebRoot文件夹上点右键→new→JSP(Advanced Templates)模板

—→在Template to use:选择Standard JSP using Struts 1.2

完成之后就可以看到一个已经加入了Struts的JSP页面。

多了几个标签:

<%@ 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" %>
<%@ taglib uri="http://struts.apache.org/tags-tiles" prefix="tiles" %>

标签的作用是后续学习的内容

将下述没用的内容删掉:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">    
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">

保存页面之后,用login.jsp再复制如下三个:

errors.jsp login_success.jsp login_failure.jsp

→共计四个JSP页面。在<body></body>写上提示信息。

<html:errors />是一个Struts标签,对应:<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>

————————————————————————————————————

<html:form action="" method="post">


用户名:<html:text property="name"></html:text>
密&nbsp;&nbsp;码:<html:password property="password"></html:password>
<html:submit value="登陆"></html:submit>
<html:reset value="重置"></html:reset>

</html:form>

————————————————————————————————————

<!--和以往的html表单不一样-->

<form action="" method="post">

用户名:<input type="text" name="uname" />

密码:<input type="password" name="upass"/>

<input type="submit" value="提交"/>

</form>

————————————————————

订制透视图Customize Perspective→Web-Struts→Struts1.2→Struts1.2 Form, Action & JSP

在src上点右键,在new里面会增加了一个快捷方式(Struts1.2 Form, Action & JSP)!!

Form(ActionForm)

Action

添加点击Struts1.2 Form, Action & JSP之后:

struts1.2 Form Declaration中:

Use case:login →用例

Name:自动设置为loginForm

Super class:选择org.apache.struts.action.ActionForm

在Form Properties中添加name、password属性。

点下一步:

struts1.2 Action Declaration:默认

完成之后,在src目录中加入了

cn.bupt.wj.struts.action→LoginAction.java→动作

cn.bupt.wj.struts.form→LoginForm.java→完成数据验证

******************************************************************

cn.bupt.wj.struts→ApplicationResources.properties→资源文件,用来保存信息

******************************************************************

login.jsp←——对应——→LoginForm.java

      ***********name、password****************

用户在login.jsp页面中提交的name将传递到LoginForm.java

所以说,在LoginForm.java中的this.name就是指用户提交的name值!!

——————————————

/** password property */
private String password;

/** name property */
private String name;

——————————————

用户名:<html:text property="name"></html:text>
密&nbsp;&nbsp;码:<html:password property="password"></html:password>

————————————————————————————————————

LoginForm.java就是一个bean

Struts中的跳转语句通过mapping完成

struts-config.xml中的经典片段:

<form-beans >
    <form-bean name="loginForm" type="cn.bupt.wj.struts.form.LoginForm" />

</form-beans>

<action-mappings >
    <action
      attribute="loginForm" —→对应上面的form-bean
      input="/errors.jsp"      —→登录失败
      name="loginForm"
      path="/login"              —→login.jsp登录时要去的地方
      scope="request"
      type="cn.bupt.wj.struts.action.LoginAction" >
      
      <forward name="succ" path="/login_success.jsp"></forward>
      <forward name="fail" path="/login_failure.jsp"></forward>
    </action>

</action-mappings>

————————————————————————————

//LoginAciton.java中的核心语句:

public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) 
{
   //loginForm获得用户在前台输入的name、password值
   LoginForm loginForm = (LoginForm) form;
  
   //将用户输入的值,传递给ActionForm的子类
   String name = loginForm.getName();
   String password = loginForm.getPassword();
   if("wangjian".equals(name)&&"123456".equals(password))
   {
    //跳转到成功页
    return mapping.findForward("succ");
   }
   else
   {
    //跳转到失败页
    return mapping.findForward("fail");
   }
  
}

————————————————————————————————

login.jsp→login.do→LoginForm.java→LoginAction.java→Struts-config.xml→login_success.jsp(login_failure.jsp)

LoginForm.java→判断!

LoginAction.java→动作!!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值