1

我正在学习 S2 并正在开发一个应用程序,现在我想在我的操作类中使用 ParameterNameAware,但在此之前我只想向自己澄清一些问题。请帮我...

  1. ParameterNameAware 的工作原理(有基础知识但需要解释)
  2. 多久接受一次参数名称被调用
  3. 当我执行应用程序并尝试从 AcceptableParameterName 方法打印参数(字符串)时,它返回的不仅仅是输入参数。它们是什么以及这种方法实际上提供了什么。
  4. 避免不可接受的参数的最佳方法是什么(除了 ParameterNameAware)。

如果这些问题中的任何一个没有意义,请忽略。

更多的解释将不胜感激。提前致谢 :-)

4

1 回答 1

1

好吧,这里有一些输入可以使您的观点更加清晰。

关于这个接口的整个想法是维护一个有效参数名称的列表,并通过拒绝不在此列表中的任何请求参数来保存。

如果您希望您的操作仅接受某些值集,您只需ParameterNameAware在您的操作中实现接口以将消息传递给底层 S2 框架,您希望仅为您的操作类接受某些参数集。

Parameters Interceptor从 A 获取所有参数ctionContext.getParameters()并通过调用将它们设置在值堆栈上ValueStack.setValue(String, Object)ParameterNameAwareParametersInterceptor.在你的动作类中设置参数一起工作时,如果你的动作类已经实现了接口,拦截器检查你的动作类中是否允许该参数,并将仅设置允许的参数。

处理参数的黑名单或白名单的其他方法是将列表acceptParamNamesexcludeParams作为参数传递给您的ParametersInterceptor.

于 2012-09-25T03:23:50.467 回答