六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 23|回复: 0

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

[复制链接]

升级  0%

54

主题

54

主题

54

主题

举人

Rank: 3Rank: 3

积分
200
 楼主| 发表于 2013-1-23 02:14:32 | 显示全部楼层 |阅读模式
思路
做一个简单的表单程序,用户登录。
目标,成功提交用户的信息,
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;}}
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表