• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
小不点儿大的由我做主!
流年似水!
博客园    首页    新随笔    联系   管理    订阅  订阅

struts2学习笔记(3)

从星期天开始就没写笔记了,今天总结一下。(struts2的标签部分没写,我想做一个页面包括常用的14个标签然后再贴出来吧!)

这两天终于进入到struts2的核心部分了,就是Action控制。
Struts 1.x Stuts 2.0
接口 必须继承org.apache.struts.action.Action或者其子类 无须继承任何类型或实现任何接口
表单数据 表单数据封装在FormBean中 表单数据包含在Action中,通过Getter和Setter获取

虽然,理论上Struts 2.0的Action无须实现任何接口或继承任何类型,但是,我们为了方便实现Action,大多数情况下都会继承com.opensymphony.xwork2.ActionSupport类,并重载(Override)此类里的String execute()方法。

简单的例子我就不写了,主要是想总结一下表单输入。

使用Struts 2.0,表单数据的输入将变得非常方便,和普通的POJO一样在Action编写Getter和Setter,然后在JSP的UI标志的name与其对应,在提交表单到Action时,我们就可以取得其值。

Action获取页面的提示信息有两种方法:

(1)将页面的提示信息直接封闭在Action的控制器中。举个例子

新建Login Action,它通过Login.jsp的表单获得用户名和密码,验查用户名是否为“max”,密码是否则为“secret”。如果,两者都符合,就在HelloWorld中显示“Welcome, max”,否则显示“Invalid user or Password”。

package tutorial;

import com.opensymphony.xwork2.ActionSupport;

publicclass Login extends ActionSupport {
private String name;
private String password;
private String message;
   public Login() {
                 } //这个空的构造方法一定要有

public String getName() {
return name;
}


publicvoid setName(String name) {
this.name = name;
}


public String getPassword() {
return password;
}


publicvoid setPassword(String password) {
this.password = password;
}


public String getMessage() {
return message;
}


@Override
public String execute() {
if("max".equals(name) &&"Secret".equals(password)) {
message
="Welcome, "+ name;
}
else{
message
="Invalid user or password";
}

return SUCCESS;
}

}
例4 classes/tutorial/Login.java

<%@ page contentType="text/html; charset=UTF-8" %>
<%@ taglib prefix="s" uri="/struts-tags"%>
<html>
<head>
<title>Login</title>
</head>
<body>
<s:form action="Login" method="POST">
<s:textfield name="name" label="User name"/>   //此处的name的值对应 的是Login里的name
<s:password name="password" label="Password"/> //此处的password也是对应的Login里的password
<s:submit value="Submit"/>
</s:form>
</body>
</html>
Login.jsp

<action name="Login" class="tutorial.Login">
<result>/HelloWorld.jsp</result>
</action>
classes/struts.xml中Login Action的配置

在浏览器里输入http://localhost:8080/Struts2_Action/Login.jsp可以看到结果,在此就不写了。

(2)使用标准的POJO类,进行页面数据的封装(在封装POJO数据时,必须编写无参的构造方法)

写一个pojo类User.java,用于封装数据。

package com.pojo;

import java.io.Serializable;

public class User implements Serializable{
    private String name;
    private String password;
   
    public User() {
       
    }

posted @ 2008-11-19 14:34  小不点儿大的由我做主!  阅读(161)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3