javaからjavascript処理をよびたい
Springboot MVCを勉強しています。
index.htmlをHTML5で用意し、コントローラークラスをjavaで用意しました。
■コントローラクラス
@RequestMapping(value = "/", method = RequestMethod.GET)
public ModelAndView index(ModelAndView mav) {
mav.setViewName("index");
return mav;
}
ブラウザ起動時に、ブラウザの情報を取得したく考えています。
ブラウザ起動時に上記コントローラーの「index()」が呼ばれていたので
このなかでブラウザ情報を取得したいと思ったのですが、
ブラウザの情報の取り方を探っているうちにjavascript側で取得できることを確認できました。
■javascript側(test.js)
function getBrowser() {
// ブラウザ言語を取得
var ua = window.navigator.userAgent.toLowerCase();
return ua;
}
下記を参考にコントローラクラスを変更しました。
http://d.hatena.ne.jp/Nagise/20140227/1393500657
@RequestMapping(value = "/", method = RequestMethod.GET)
public ModelAndView index(ModelAndView mav) {
mav.setViewName("index");
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("test");①
String lang = "";
try {
lang = (String) engine.eval("getBrowser();");
} catch (ScriptException e) {
// TODO 自動生成された catch ブロック
e.printStackTrace();
}
return mav;
}
engineがnullになってしまいます。
javaからjavascriptのメソッドを呼ぶ処理が不正なのでしょうか。