栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

通过Struts 2中的ModelDriven将参数传递给动作

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

通过Struts 2中的ModelDriven将参数传递给动作

name
是模型的财产,也是动作类的属性。该
modelDriven
拦截器推值堆顶部的模型,所以很容易在JSP中使用它。动作对象位于模型下方。因此,可以使用
[1]
前缀直接引用它。请参阅OGNL基础。

但是,如果模型和操作对象中没有重复的属性名称,则没有必要。当名称

name
由OGNL评估时,它将从值堆栈的顶部搜索到堆栈的下方,以查找属性访问器。找到的第一个访问器将被执行。因此,模型属性具有优先级,因为模型位于值堆栈的顶部。

如果

name
应在操作中设置具有名称的属性,则可以直接将该属性命名为
[1].name
。但是,
params
拦截器的默认模式不接受此类参数名称。但是,它是有效的OGNL表达式。因此,要使其通过拦截器,您需要将其添加到已接受参数名称的模式中。像那样

@Action(value="modelDrivenResult", results=@Result(location = "/modelDriven/modelDrivenResult.jsp"),  interceptorRefs = @InterceptorRef(value="defaultStack", params={    "params.acceptParamNames", "(\[\d+\]\.)*\w+((\.\w+)|(\[\d+\])|(\(\d+\))|(\['\w+'\])|(\('\w+'\)))*"  }))

这是因为OGNL还会检查接受参数的模式,并且此正则表达式模式允许同时匹配

params
OGNL匹配器。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/417247.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号