Struts:“别名”参数名称,从“foo.bar”到“b”

时间:2011-01-04 15:30:37

标签: parameters struts names

我有一个将DTO作为成员的Struts Action:

public class MyAction {
   private MyDTO dto;

   void execute() {
      String bar = dto.getBar() ;  
     //struts has mapped GET parameter dto.bar by calling dto.setBar()
     // do something with bar:
     return bar != null ? SUCCESS : INPUT;
    }
}

我想将名为“b”的参数映射到dto.bar,只是为了让我的GET网址更清晰。代替:    http://myurl?dto.bar=xxx 我想要:    http://myurl?b=xxx

我知道我可以通过向我的Action添加一个setB(最终的字符串b)来做到这一点,但这会使我的代码更脆弱,更难理解。

有没有办法告诉Struts进行这种映射,这样对于http://myurl?b=xxx的url,会调用MyAction.getDto.setBar()?

1 个答案:

答案 0 :(得分:1)

您可以使用别名拦截来实现此目的。退房:

http://www.opensymphony.com/webwork/wikidocs/Alias%20Interceptor.html