ExtJs - Struts2 整合(1) - 登录页面

本文介绍如何使用ExtJS和Struts2搭建一个简单的登录页面,并实现表单验证及登录功能。文章详细展示了HTML、JavaScript代码配置以及Java类编写过程。

初学 ExtJS,在此记录下学习过程中的点点滴滴,以备不时只需,也希望能给跟我一样的菜鸟一些帮助,老鸟请忽略。如有不当之处,欢迎指正。

开发环境:

MyEclipse 6.5

Struts 2.1.8

ExtJs 3.0

 

1. 准备工作

首先需要配置 Struts2 和 ExtJS,具体操作这里不再多说。

 

2. 登录页面

<%@ page language="java" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
		<title>login Page Test-2</title>

		<!-- 引入ExtJS所需文件-->
		<link rel="stylesheet" type="text/css" href="js/extjs/resources/css/ext-all.css" />
		<script type="text/javascript" src="js/extjs/adapter/ext/ext-base.js"></script>
		<script type="text/javascript" src="js/extjs/ext-all.js"></script>
		<script type="text/javascript">
			var loginForm;
			Ext.onReady(function() {
				Ext.BLANK_IMAGE_URL = 'js/extjs/resources/images/default/s.gif';
    			Ext.QuickTips.init();
    
    			// 定义一个 FormPanel 对象
    			loginForm = new Ext.FormPanel({
    				width: 400,
			    	frame: true,
			    	renderTo: "loginForm",
			    	title: "登录",
			    	method: "POST",
			    	monitorValid: true, // 该属性表示表单在通过验证之前提交按钮无效
			    	labelWidth: 50, // 标签宽度
			    	labelAlign: "left", // 标签的对齐方式
			    	labelPad: 0, // 标签与输入框的间隔
			    	buttonAlign: 'center', // 底部按钮居中对齐
			    	
			    	items: [
			    		{
			    			xtype: "textfield",
			    			fieldLabel: "用户名",
			    			allowBlank: false, // 是否允许为空, 默认为 true
			    			blankText: "用户名不能为空", // 显示错误提示信息
			    			name: "user.username", // name 属性应与 Struts2 Action 中的属性保持一致
			    			id: "username",
			    			width: 300
			    		},
			    		{
			    			xtype: "textfield",
			    			inputType: "password",
			    			fieldLabel: "密&nbsp;&nbsp;&nbsp;码",
			    			allowBlank: false,
			    			blankText: "密码不能为空",
			    			name: "user.password",
			    			id: "password",
			    			width: 300
			    		}
			    	],
			    	buttons: [
			    		{
			    			text: "登&nbsp;录",
			    			formBind: true,
			    			handler: doLogin
			    		},
			    		{
			    			text: "重&nbsp;置",
			    			handler: doReset
			    		}
			    	],
			    	keys: [
			    		{
			    			key: [10, 13],
			    			fn: doLogin
			    		}
			    	],
			    	
			    	// 表单不使用AJAX方式提交
			    	onSubmit: Ext.emptyFn,
			    	submit: function() {
			    		this.getEl().dom.action = "login.action";
			    		this.getEl().dom.submit();
			    	}
			    });
			});
			
			// 登录
			function doLogin() {
				if(loginForm.form.isValid()) {
					loginForm.form.submit();
				}
			}
			
			// 重置
			function doReset() {
				loginForm.form.reset();
			}
		</script>
	</head>

	<body>
		<div id="loginForm" style="margin: 100px">
		</div>
	</body>
</html>

页面效果如下图所示:

 

3. Java 类编辑

3.1 User 类

/***********************************************************************
 * <p>Project Name: extjs</p>
 * <p>File Name: com.thu.afa.extjs.bean.User.java</p>
 * <p>Copyright: Copyright (c) 2010</p>
 * <p>Company: <a href="http://afa.thu.com">http://afa.thu.com</a></p>
 ***********************************************************************/
package com.thu.afa.extjs.bean;

import java.io.Serializable;

/**
 * <p>Class Name: User</p>
 * <p>Description: </p>
 * @author Afa
 * @date Aug 4, 2010
 * @version 1.0
 */
public class User implements Serializable
{
	private static final long serialVersionUID = 2851358330179740778L;
	
	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;
	}
}

 

3.2 Action 类

/***********************************************************************
 * <p>Project Name: extjs</p>
 * <p>File Name: com.thu.afa.extjs.action.UserAction.java</p>
 * <p>Copyright: Copyright (c) 2010</p>
 * <p>Company: <a href="http://afa.thu.com">http://afa.thu.com</a></p>
 ***********************************************************************/
package com.thu.afa.extjs.action;

import com.opensymphony.xwork2.ActionSupport;
import com.thu.afa.extjs.bean.User;

/**
 * <p>Class Name: UserAction</p>
 * <p>Description: </p>
 * @author Afa
 * @date Aug 4, 2010
 * @version 1.0
 */
public class UserAction extends ActionSupport
{
	private static final long serialVersionUID = 3093253656888703000L;
	
	private User user;
	
	public User getUser()
	{
		return user;
	}

	public void setUser(User user)
	{
		this.user = user;
	}

	@Override
	public String execute() throws Exception
	{
		return ("test".equals(user.getUsername()) && "test".equals(user.getPassword())) ? SUCCESS : INPUT;
	}
}

 

4. 配置文件 struts.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN"
    "http://struts.apache.org/dtds/struts-2.1.7.dtd">
<struts>
	<package name="com.thu.afa.extjs" extends="struts-default">
		<action name="login" class="com.thu.afa.extjs.action.UserAction">
			<result name="success">/result.jsp</result>
			<result name="input">/login.jsp</result>
		</action>
	</package>
</struts>

 

5. 部署运行

开发过程完成,部署运行即可。

 

6. 注意事项

6.1 表单元素的 name 属性

name: "user.username", // name 属性应与 Struts2 Action 中的属性保持一致

 

6.2 表单的提交地址

this.getEl().dom.action = "login.action";

 

 

 

-----------------------------------------------------
Stay Hungry, Stay Foolish!

http://yarafa.iteye.com
Afa
Aug 4th, 2010
-----------------------------------------------------

代码下载地址: https://pan.quark.cn/s/b4a8e0160cfc 齿轮与轴系零件在机械设备中扮演着至关重要的角色,它们负责实现动力传输、调整运动形态以及承受工作载荷等核心功能。 在机械工程的设计实践中,齿轮和轴系的设计是一项关键的技术任务,其内容涵盖了材料选用、构造规划、承载能力分析等多个技术层面。 下面将系统性地介绍《齿轮及轴系零件结构设计指导书》中的核心知识点。 一、齿轮设计1. 齿轮种类:依据齿廓轮廓的不同,齿轮可划分为直齿齿轮、斜齿轮以及人字齿轮等类别,各类齿轮均具有特定的性能特点与适用工况,能够满足多样化的工作环境与载荷需求。 2. 齿轮规格参数:模数大小、压力角数值、齿数数量、分度圆尺寸等是齿轮设计的基础数据,这些参数直接决定了齿轮的物理尺寸与运行性能。 3. 齿轮材质选用:齿轮材料的确定需综合评估其耐磨损性能、硬度水平以及韧性表现,常用的材料包括铸铁、钢材、铝合金等。 4. 齿轮强度验证:需进行齿面接触应力分析与齿根弯曲应力分析,以确保齿轮在实际运行过程中不会出现过度磨损或结构破坏。 5. 齿轮加工工艺:涉及切削加工、滚齿加工、剃齿加工、淬火处理等工艺流程,工艺方案的选择将直接影响齿轮的加工精度与使用寿命。 二、轴设计1. 轴的分类方式:依据轴在机械装置中的功能定位与受力特点,可将轴划分为心轴、转轴以及传动轴等类型。 2. 轴的材料选择:通常采用钢材作为轴的材料,例如碳素结构钢或合金结构钢,特殊需求时可选用不锈钢材料或轻质合金材料。 3. 轴的构造规划:需详细考虑轴的轴向长度、截面直径、键槽布置、轴承安装位置等要素,以满足轴的强度要求、刚度要求以及稳定性要求。 4. 轴的强度验证:需进行轴的扭转强度分析与弯曲强度分析,以防止轴在运行过程中发生塑性变形...
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值