質問: (String) engine.eval("getBrowser();"); } catch (ScriptException e) { // TODO 自動生成された catch ブロック e.printStackTrace(); } return mav; } ``` engineがnullになってしまいます。 javaからjavascriptのメソッドを呼ぶ処理が不正なのでしょうか。
回答: `@RequestMapping ハンドラ`の引数から幾つかの情報を取得することができ、例えばユーザエージェント(これはリクエストヘッダに含まれる)であれば次のような型の引数を追加すれば得ることが出来ます。 例1: ``` @RequestMapping(...) public ModelAndView index(@RequestHeader("User-Agent") String userAgent, ModelAndView mav) { System.out.println(userAgent); ... } ``` 例2: ``` @RequestMapping(...) public ModelAndView index(WebRequest request, ModelAndView mav) { String userAgent = request.getHeader("User-Agent"); System.out.println(userAgent); ... } ``` 参考: * 22.3.3 Defining @RequestMapping handler methods - Supported method argument types