struts2学习笔记

Struts2学习笔记

一、入门

1、开发环境

eclipse3.3myeclipse6.0tomcat6.0fedora9.0

2、从http://struts.apache.org/2.x/ 下载struts2jar包,并解压到一个目录

3、新建一个web工程,将struts2中的lib目录下的commons-logiging-1.0.4.jarfreemarker-2.3.8.jarognl-2.6.11.jarstruts2-core-2.0.11.1.jarxwork.2.0.4.jar导入到新建的工程中

4、配置web.xml文件

在文件中加入以下内容(形式同servlet很相似)

<filter>

<filter-name>struts2</filter-name>

<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>

</filter>

<filter-mapping>

<filter-name>struts2</filter-name>

<url-pattern>/*</url-pattern>

</filter-mapping>


5、在struts2中有一个重要的配置文件是struts.xml,这个文件是处理客户端与服务器端的控制文件,该文件放在工程目录中的classes文件下,其配置内容如下:


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


<!DOCTYPE struts PUBLIC

"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"

"http://struts.apache.org/dtds/struts-2.0.dtd">


<package name=”default”class=“struts-default”>


<!--

中间的部分是以后完成代码之后所配置信息的地方

-->

</package>


6、新建一个新的jsp,在头部将struts2的标签导入到页面中


<%@ taglib uri="/struts-tags" prefix="s" %>

这样便可以使用struts2的标签,新建一个表单

<s:form action="login">

<s:text name="username" lable="用户名:"></s:text>

<s:password name="password" label="密码:"></s:password>

<s:submit label="提交"></s:submit>

</s:form>

(现在可以运行查看一下sutruts2的表单与普通的html表单有什么异同)


7、新建一个javaloginAction.java来处理提交的信息(struts2的表单默认提交方式是post提交),该类继承与ActionSupport

package com.struts.test;


import com.opensymphony.xwork2.ActionSupport;


public class loginAction extends ActionSupport {


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;

}

}

login.jsp中提交过来的信息username,password将会自动被该类中的set方法调用,将值赋到该类的属性当中。

测试一下:新建一个result.jsp

(我们用el表达式)

用户名:${requestScope.username}<br>

密 码: ${requestScope.password}

loginAction.java中加入

public String execute() throws Exception {

return SUCCESS;

该方法是与struts.xml文件的的通讯方法


struts.xml文件的package节点中导入配置文件

<action name="login" class="com.struts.test.loginAction">

<result>/result.jsp</result>

</action>

action name = “这是表单提交的名字” class=”参考servlettypeclass属性”

result 这是 返回结果所要提交的页面(默认使用转发的方式,可以改为重定向。

有人会说,execute()方法中的success有什么用?

其实这个success是针对于struts.xml文件的result属性的,struts2中的默认就是success

所以为了更明确的显示,把上面的struts.xml修改为:

<action name="login" class="com.struts.test.loginAction">

<result type=”success”>/result.jsp</result>

</action>


我们执行一下这个程序,你会发现你所输入的信息会显示到result.jsp


8、这样的程序不够完美,我们加入以下功能

1)、用户名与密码不能为空

2)、只有用户名输入hello,密码输入world时,才可以将内容提交到result.jsp


在新建loginAction类时,继承了ActionSupport,所以loginAction中就有了一个用于验证 的方法,我们覆盖它,实现我们想要的功能。

public void validate() {

if(null==this.getUsername()||"".equals(this.getUsername().trim()))

{

this.addFieldError("username", "用户名不能为空");

}

if(null==this.getPassword()||"".equals(this.getPassword().trim()))

{

this.addFieldError("password","密码不能为空!");

}

}

实现了这个方法后,我们还需要修改struts.xml文件

<action name="login" class="com.struts.test.loginAction">

<result name="input">/login.jsp</result>

<result name="success">/result.jsp</result>

</action>

增加了<result name="input">/login.jsp</result>在验证没有通过的时候就会调用input

现在执行一下程序,看看结果。


下面,我们加入验证特定用户名与密码的功能

修改execute()方法

public String execute() throws Exception {

if("hello".equals(this.getUsername().trim())&&"world".equals(this.getPassword().trim()))

{

return SUCCESS;

}

else

{

this.addFieldError("username", "用户名或密码错误!");

return "failer";

}

}

修改struts.xml文件

action节点下增加 <result name="failer">/login.jsp</result>


功能完成,执行一下---

注意:刚才的验证功能不应该出现在execute()方法中,应该写在业务逻辑类中。

this.addFieldError("username", "用户名或密码错误!");这个方法是添加错误提示信息的,第一个属性是说错误信息出现在什么位置,第二个是错误信息。

具体内容可以查看struts2的帮助文档!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值