私は Struts に取り組んでいて、奇妙な動作に遭遇しました。エラーやバグは発生していませんが、皆さんと共有するのは興味深いと思いました.
おそらく、あなたの1人がなぜこれが起こっているのかを説明できます.
次のコードで Struts アクションを作成します -
public class MyAction extends ActionSupport {
private Map<String, Map<String, Object>> map = new HashMap<String, Map<String, Object>>();
public String execute() {
System.out.println(map);
return SUCCESS;
}
public Map<String, Map<String, Object>> getMap() {
return map;
}
public void setMap(Map<String, Map<String, Object>> map) {
this.map = map;
}
}
関連するマッピングと必要な Jsp を作成し、アクションを実行します。コンソールに次の出力が表示されます -
{systemProperties={java.runtime.name=Java(TM) SE Runtime Environment, sun.boot.library.path=C:\Program Files\Java\jdk1.6.0_32\jre\bin, java.vm.version=20.7-b02, shared.loader=${catalina.base}/shared/classes ....
どうやら Struts がシステム プロパティをマップに注入しているようです。しかし、なぜそうしているのでしょうか?私はそうするように頼んだわけではありません。私が使用した特別な XML 構成や注釈はありません。Struts のどの部分 (どのインターセプター) がこれを担当していますか? バグを発見したのですか、それともこれは正常な動作ですか? Map<String, Map<String, Object>>
Struts の開発者がシステム プロパティをすべてに注入するのが賢明だと考えたのはなぜですか?