- 浏览: 30222 次
- 性别:
- 来自: 长沙
文章列表
自身一对多的情况下,如果
<s:hidden name="documentCatalog.parent.id" />
这样的话 即使parent为空,但set进去的时候还是会new出一个新的parent,而这个父亲显然没有在数据库里存在,在update这个是实例时就会报错,除非你这个子类(多)设置了级联,但就算这样显然答案是不对的 你更新一个对象,不能给它增加一个父亲,解决方法如下:在更新页面里按这样写
<s:if test="null != documentCatalog.parent">
<s:hidden name ...
namespace : function(){
var o, d;
Ext.each(arguments, function(v) {
d = v.split(".");
o = window[d[0]] = window[d[0]] || {};
Ext.each(d.slice(1), function(v2){
o = o[v2] = o[v2] || {};
...
each : function(array, fn, scope){
if(Ext.isEmpty(array, true)){
return;
}
if(!Ext.isIterable(array) || Ext.isPrimitive(array)){
array = [array];
}
for(var i = 0, len = array.length; i < len; i++){
...
var toString = Object.prototype.toString
toString.apply(v);
这个方法的原理是:String ,Boolean,Number,Array的[[Class]]分别是String,Boolean,Number,Array
首先对V进行ToObject方法调用,class即为这个方法结果的内置Class属性
判断是否是HTMLElement元素方法:(ext里的)
isElement : function(v) {
return !!v && v.tagName;
}
...
Ext = {
version : '3.1.1'
};
Ext.apply = function(o, c, defaults){
// no "this" reference for friendly out of scope calls
if(defaults){
Ext.apply(o, defaults);
}
if(o && c && typeof c == 'object'){
for(var p in c){
...
1,domain 对象 必须传参进去 才会帮你构造对象 并且这个对象必须有无参构造函数 否则你需要自己new
2.可以调用值栈中对普通属性的方法和普通方法
3 可以调用值栈中action的普通方法
4 访问集合:
某个MAP的所有key **.keys
value **.values
value stack contents ognl 值栈
stack context action上下文
action上下文是一个map对象,通过#key获得对象内容,在#request又可以得到值栈,值栈里存储的是一些action里的变量
于是获得action变量内容有三种方式
1,从值栈中直接获得
<s:property value="type"/>
${type }
2,从action上下文获得值栈的属性
<s:property value="#request['type']"/>或者< ...
debug: value stack contents (里面的东西直接拿)
stack Context (里面的东西用#号取) = ActionContext :ActionContext.getContext()
里面就是key---value
常见的key: request,session,application,attr等
Map request = ActionContext.getContext().get("request");
M ...
dispatcher(默认) 服务器端跳转到页面 服务器跳转:就是forword
redirect 客户端跳转到页面
chain 服务器端跳转到action
redirectAction 客户端跳转到action
stream 用于下载
plaintext 源码教学用