0

我想知道如何处理 struts2 操作中缺少的请求参数:假设您有一个操作来查看用户配置文件。该操作将根据 userId 参数显示给定用户的个人资料。

您如何处理可能缺少此参数的事实(如果用户直接从 url 栏加载操作,或者他使用篡改数据插件...)?

我看到了几个选项,但我想知道是否还有其他选项,哪一个是最好的:

  1. 在每个动作中,在 prepare() 上,检查是否给出了预期的参数,如果没有则重定向
  2. 在每个动作中,在处理请求的方法上,检查参数,如果没有则重定向

我还认为我可以使用验证器来确保参数存在,但它只适用于表单,不是吗?

如果您对这个问题有任何想法或观点,我很想听听

谢谢

4

1 回答 1

1

验证对请求参数进行操作——不管是通过表单还是请求参数。

只要一个动作有适当的设置器,在这种情况下,默认验证就可以正常工作。确定用户是否有权访问相关配置文件也可以使用自定义验证器来处理,可能是使用现有业务逻辑来确定访问权限的验证器。

然而,所有这些都可以使用 Spring Security 进行封装,并且无需编写自己的拦截器和/或验证器。哪种解决方案最合适取决于您的实际需求。

于 2012-04-26T16:08:17.860 回答