我有一个将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()?
答案 0 :(得分:1)
您可以使用别名拦截来实现此目的。退房:
http://www.opensymphony.com/webwork/wikidocs/Alias%20Interceptor.html