一、先搭建好struts2,能够通过myeclipse高速搭建。

二、再导入extjs所需的库文件。

三、写一个实体类User

package com.ext.model;

public class User {
private Integer id;
private String username;
private String password;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
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;
}
}

四、写LoginAction

package com.ext.action;

import com.ext.model.User;
import com.opensymphony.xwork2.ActionSupport; public class LoginAction extends ActionSupport {
private boolean success;
private String message;
private User user; @Override
public String execute() throws Exception {
// TODO Auto-generated method stub
if(user.getUsername().equals("admin")&&user.getPassword().equals("admin")){
this.success= true;
//this.message="你的账号是:"+user.getUsername()+"password是:"+user.getPassword();
}else{
this.success=false;
this.message="对不起。未授权的用户不能登录改系统";
}
return SUCCESS;
} public boolean isSuccess() {
return success;
} public void setSuccess(boolean success) {
this.success = success;
} public String getMessage() {
return message;
} public void setMessage(String message) {
this.message = message;
} public User getUser() {
return user;
} public void setUser(User user) {
this.user = user;
} }

五、struts.xml例如以下所看到的:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
<package name="extjs" extends="json-default" namespace="/">
<action name="Login" class="com.ext.action.LoginAction">
<result type="json"></result>
</action>
</package>
</struts>

六、login.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<link rel="stylesheet" type="text/css" href="ext3/resources/css/ext-all.css"/>
<script type="text/javascript" src="ext3/adapter/ext/ext-base.js"></script>
<script type="text/javascript" src="ext3/ext-all.js"></script>
<script type="text/javascript" src="ext3/ext-lang-zh_CN.js"></script>
<script type="text/javascript" src="login.js"></script>
</head>
<body>
</body>
</html>

七、login.js

Ext.onReady(function(){
Ext.QuickTips.init();
Ext.form.Field.prototype.msgTarget="side"; var form1=new Ext.FormPanel({
labelWidth:40,
baseCls:'x-plain',
defaults:{width:180},
items:[{
xtype:'textfield',
fieldLabel:"username",
id:"txtName",
name:'user.username',
allowBlank:false,
blankText:"username不能为空!"
},{
xtype:'textfield',
fieldLabel:"密码",
allowBlank:false,
blankText:"密码不能为空!",
name:'user.password',
inputType:'password'
}],
buttons:[{
text:"提交",
type:'submit',
handler:function(){
if(form1.getForm().isValid()) {
Ext.MessageBox.show({
title:'请等待',
msg:'正在载入',
progressText:'',
width:300,
progress:true,
closable:'false',
animEl:'loding'
});
var f = function(v){
return function(){
var i=v/11;
Ext.MessageBox.updateProgress(i,'');
}
}
for(var i=1;i<33;i++){
setTimeout(f(i),i*1500);
}
//提交到server操作
form1.form.doAction('submit',{
url:'Login.action',
method:'post',
success:function(form,action){
document.location="index.jsp";
Ext.Msg.alert("登录成功。",action.result.message);
},
failure:function(form,action){
Ext.Msg.alert("登录失败!",action.result.message);
}
});
}
}},
{
text:"重置",
handler:function() {
form1.getForm().reset();
}
}]
}); var window = new Ext.Window({
title :"登录窗体",
layout:'fit',
width:290,
height:250,
plain:true,
bodyStyle:'padding:10px',
maximizable:false,
closeActon:'close',
closable:false,
collapsible:true,
buttonAlign:'center',
items:form1
});
window.show(); });


八、登录成功的index页面就不写了。

用extjs实现页面间的跳转開始学有点麻烦,注意红色部分。

最新文章

  1. [LeetCode] Reverse Linked List II 倒置链表之二
  2. SQLite使用(一)&amp;&amp;选择表类型
  3. 如何用PowerShell列出你机器上的.NET Framework的版本号和SP服务补丁
  4. 常见Xcode参数设置错误
  5. 【HDU 3938】Portal (并查集+离线)
  6. Fiddler源代码分享
  7. 2016HUAS暑假集训训练2 F - A Simple Problem with Integers
  8. 20145210 《Java程序设计》第一周学习总结
  9. user-agent中的mozilla
  10. 问题:如何在固定大小的DIV层插入N多个图片
  11. Mybatis 动态获取字段值(不需要创建javabean)
  12. openwrt使用3G上网卡
  13. LA 3521 Joseph&#39;s Problem
  14. (转) dedecms中自定义数据模型
  15. MySql命令行命令和SQL语句
  16. python--getitme\setitem 支持索引与分片
  17. DBMS_STATS.GATHER_TABLE_STATS
  18. POJ 3041 Asteroids(匈牙利+邻接表)
  19. 游戏平台代表--PS4【推荐】
  20. centos 6.8 下安装redmine(缺陷跟踪系统)

热门文章

  1. bzoj1003: [ZJOI2006]物流运输(DP+spfa)
  2. JNI中java类型的简写
  3. PHP str_replace() 和str_ireplace()函数
  4. 84.Node.js -Mongoose 方法
  5. java9新特性-17-智能Java编译工具
  6. Edge浏览器开发人员工具
  7. 【Git 五】TortoiseGit中SSH密钥的配置方法
  8. SSL和SSH
  9. NodeJS学习笔记 进阶 (9)express+cookie-parser:签名机制深入剖析(ok)
  10. iOS开发——设置屏幕亮度