2.Action的概念

[b]一.如何开发Action[/b]
理论上Action组件不需要继承任何类,实现任何接口,他可以只是一个简单的Java对象。但Strut2还是提供了一些辅助工具。
1. 框架首先提供了一个可选的Action接口。

Pubic interface Action{
Public static final String ERROR=”error”;
Public static final String INPUT=”input”;
Public static final String LOGIN=”login”;
Public static final String NONE=”none”;
Public static final String SUCCESS=”success”;

Public string execute() throws Exception;
}


2. 另外,框架还提供了一个Action的组件的基类ActionSupport,在它实现了Action接口的同时,还实现了另外四个接口:Validateable和ValidationAware接口提供验证功能;TextProvider和LocaleProvide接口提供对本地化和国际化的支持。
[b]二.Action做了什么事[/b]Action对web请求的处理包含以下步骤
1. 获取Web请求中的信息
2. 在execute方法中根据获取的Web请求信息进行业务逻辑处理。
3. 返回一个代表处理结果的字符串。
[b]三.项目ActionDemo01,模拟登陆程序[/b]

 
Web.xml
<?xml version="1.0" encoding="GBK"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<display-name></display-name>
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>

<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>





Login.jsp
<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<%@taglib prefix="s" uri="/struts-tags" %>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>登陆</title>
</head>

<body>
<h4>请输入你的用户名和密码:</h4>
<s:form action="Login">
<s:textfield name="username" label="用户名"/>
<s:password name="password" label="密码" />
<s:submit label="登陆" />
</s:form>
</body>
</html>


Success.jsp
<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<%@taglib prefix="s" uri="/struts-tags" %>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>登陆成功</title>
</head>

<body>
<h4><s:property value="username"/>登陆成功</h4>
</body>
</html>



Action
[code="java"]
Login.java
package com.luocky.struts2Model;
import com.opensymphony.xwork2.ActionSupport;

public class Login extends ActionSupport {
private static final long serialVersionUID = 1L;
private String username;
private String password;

@Override
public String execute(){
if(username.equals(password)){
return SUCCESS;
}else{
return INPUT;
}
}
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;
}
}
[/code>

Struts.xm;
[code="ruby"]
<?xml version="1.0" encoding="GBK" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>
<package name="default" namespace="/" extends="struts-default">
<action name="Login" class="com.luocky.struts2Model.Login">
<result name="success">/Success.jsp </result>
<result name="input">/Login.jsp</result>
</action>
</package>
</struts>
[/code>

执行过程中出现的问题:在Struts.xml中时,误写成
<result name="SUCCESS">/Success.jsp </result>
<result name="INPUT">/Login.jsp</result>
时,出现找不到Action的错误

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值