extjs 我的第二个ext程序:表单

思路
做一个简单的表单程序,用户登录。
目标,成功提交用户的信息,
struts2部分采用json插件。采用struts2.18的版本就可以不用额外下载json插件了.strus2.18自带了
struts.xml

<?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">

<struts>

<constant name="struts.enable.DynamicMethodInvocation" value="true" />
<constant name="struts.devMode" value="false" />
<constant name="struts.convention.result.path" value="/contents/"/>
<constant name="struts.custom.i18n.resources" value="messageResource" />

<!--
<package name="default" namespace="/" extends="convention-default">
<default-action-ref name="index" />
<action name="index">
<result type="redirectAction">
<param name="actionName">HelloWorld</param>
<param name="namespace">/example</param>
</result>
</action>

</package> -->

<!-- Add packages here -->
<package name="json" namespace="/" extends="json-default">
<action name="login" class="cn.ibeans.demo.web.action.LoginAction">
<result type="json"/>
</action>
<!--
<action name="message_*"
class="cn.ibeans.web.action.MessageAction"
method="{1}">
</action>-->
</package>
</struts>



login.html:

<html>
<head>
<title>Login</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<link rel="stylesheet" type="text/css" href="scripts/ext/resources/css/ext-all.css" />
<script type="text/javascript" src="scripts/ext/adapter/ext/ext-base.js"></script>
<script type="text/javascript" src="scripts/ext/ext-all.js"></script>
<script type="text/javascript" src="contents/js/login.js"></script>
</head>

<body>
<div id="loginpanel"></div>
</body>
</html>


login.js:

var login = function(){
Ext.QuickTips.init();
Ext.lib.Ajax.defaultPostHeader += ";charset=utf-8";
Ext.state.Manager.setProvider(new Ext.state.CookieProvider());
// 实现具体的功能
var form = new Ext.form.FormPanel({
//title:'请登录',
defaultType:'textfield',
region:'center',
labelAlign:'right',
url:'login!login.action',
items:[{
fieldLabel:'用户',
name:'username'
},{
inputType:'password',
fieldLabel:'密码',
name:'password'
}],
buttons:[{
text : '登陆',
handler : function() {
form.getForm().submit( {
//url : 'login!login.action',
waitMsg : '正在提交,请稍等...',
success : function(form, action){
Ext.MessageBox.alert("info",action.result.username);
// window.location.href = a.result.url;
}
});
}
}, {
text : '取消',
handler : function() {
form.getForm().reset();
}
}]
});

var panel = new Ext.Panel( {
renderTo : 'loginpanel',
layout : "border",
width : 525,
height : 290,
defaults : {
border : false
},
items : [ {
region : "north",
height : 56,
html : 'north..................................'
}, {
region : "south",
height : 56,
html : 'south..................................'
}, {
region : "west",
width : 253,
html : 'west'
},form]
});

Ext.get('loginpanel').setStyle('position', 'absolute').center(Ext.getBody());

};

Ext.onReady(login);


这里开始有一点没弄通,就是button提交后的success:function(form,action){...}
后台成功处理了,但这里什么了执行不了。继续学习中...
终于弄明白了:一定要在action里有一个boolean类型的名为success的属性才行。

LoginAction.java:

public class LoginAction extends ActionSupport {
private static Logger log= Logger.getLogger(LoginAction.class);
private String username;
private String password;
private boolean success;


public String getUsername() {
return username;
}


public void setUsername(String username) {
this.username = username;
}


public boolean isSuccess() {
return success;
}


public void setSuccess(boolean success) {
this.success = success;
}


public String getPassword() {
return password;
}


public void setPassword(String password) {
this.password = password;
}


public String login(){
this.setSuccess(true);
log.info("login method is called."+username+":"+password);
return super.SUCCESS;
}

}


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值