0

インターセプターのコントローラーのメソッドと、インターセプターのメソッドによって返されるオブジェクトを達成する必要があります。

なぜ?

メソッドに注釈が付けられた注釈を使用して、クライアントに返されるデータ型を宣言したいからです。例えば ​​:

@Controller
@Scope("prototype")
@RequestMapping("/hello/")
public class HelloWorld {
    @ResponseType(DataType.JSON)
    @RequestMapping(value="/{username}")
    public UserInfo hellowUser(@PathVariable("username") String username) {
         UserInfo userInfo = new UserInfo();
         userInfo.setUsername(username);
         return userInfo.
    }
}

次にインターセプター:

public void postHandle(HttpServletRequest request,
            HttpServletResponse response, Object handler,
            ModelAndView modelAndView) throw Exception {
    Method method = getRequestedMethod();
    Object result = getResultReturnedByTheMethod();
    ResponseType responseType = method.getAnnotation(ResponseType.class);
    DataType type = responseType.value();
    swich(type) {
    case DataType.JSON : writeJson(result);
    case .......
    ...
    }
}

つまり、「getRequestedMethod」と「getResultReturnedByTheMethod」を正しく実装するにはどうすればよいでしょうか。

4

1 に答える 1

0

Jackson プロセッサを試しましたか? http://jackson.codehaus.org/

コントローラーとの間で JSON を自動的に変換します。また、Spring MVC でサポートされています。

于 2012-04-29T05:32:38.437 に答える