問題タブ [valuestack]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
797 参照

java - Struts 2 で OGNL を使用して「トップ」値のメンバーシップを確認する

JSP テンプレートと Struts 2 タグで Struts 2 を使用しています。これらでは、 a の値のメンバーシップを確認できないようですHashMap

マップは正しく設定されており、List<Taxon>I'm iterating over があり、私が持っている と呼ばれるsynonymstypeのマップに要素が存在するかどうかを確認したいと思いMap<Taxon, Taxon>ます。

オペレーターに確認すると、in常に false になります。つまり、次のようになります。

一方、これは常に当てはまります。

次のようにすると、要素がマップ内にある場合は正しい値が取得され、そうでない場合は何らかの null 値が取得されます。

奇妙なことに、taxonが繰り返し処理しているもののプロパティである場合 (つまり、別のクラスでラップしている場合)、element != null実際に正常に動作するかどうかを確認します。これは OGNL のバグですか、それとも何か間違っていますか?

0 投票する
1 に答える
3322 参照

java - インターセプターがアクション パラメーターにアクセスできない

struts2 インターセプターの例を作成しています。簡単なログイン ページを作成し、カスタム インターセプター クラスを使用して入力を暗号化しました。ValueStackしかし、インターセプターはasから入力の値を読み取っていますnull

何が間違っているのかわかりません。struts.xmlこれにはインターセプタークラスで十分なデータだと思います。私のコードがさらに必要な場合は、教えてください。

struts.xml

インターセプター .java ファイル

EncryptorDecryptor私が定義した別のクラスであり、それ自体で正しく動作しています。

0 投票する
2 に答える
377 参照

java - OGNL を Struts2 UI タグにバインドする方法はありますか

Struts2 を使用して Web アプリケーションを開発しています。以前はStruts1で作業していました

フォーミュラーの値を変更すると、参照されたセッション オブジェクトの値も更新されるように、セッション オブジェクトを JSP に直接参照する方法はありますか。

たとえば、getter と setter で属性 amount を持つセッション オブジェクトの順序があります。

にいくつかの値を入力してtextfieldからページを送信した後、セッションの値が更新されなかったようです。

session.put()現在、アクション属性のセッター内に関与する別のアプローチを使用しています。個人的には、現在のソリューションが嫌いです。

0 投票する
1 に答える
875 参照

struts2 - Struts 2 のカスタム OgnlValueStack

OgnlValueStackStruts 2.3.x のクラスを拡張して、アプリケーションにカスタム ValueStack を実装したいと考えています。

これを達成する方法を教えてください。アプリケーションで拡張および実装する必要があるクラスと、@Inject アノテーションを使用してさまざまな依存関係を注入する方法は?

アップデート

以前に提案されたように変更を加えました。私のValueStackFactory実装は次のとおりです。

このInsightValueStackImplクラスはカスタマイズした ValueStack であり、OgnlValueStack.

前に提案した変更後、アプリケーションを起動すると、次のエラーが表示されます。

これは、XWorkConverter インスタンスが null であるためです。

注入されない理由を教えてください。

前もって感謝します

ありがとう


以前に提案されたように変更を加えました。私のValueStackFactory実装は次のとおりです。

このInsightValueStackImplクラスはカスタマイズした ValueStack であり、OgnlValueStack.

前に提案した変更後、アプリケーションを起動すると、次のエラーが表示されます。

java.lang.IllegalArgumentException: com.opensymphony.xwork2.ognl.OgnlTypeConverterWrapper.(OgnlTypeConverterWrapper.java:32) でラップされた型コンバーターを null にすることはできませんcom.opensymphony.xwork2.ognl.OgnlValueStack.(OgnlValueStack.java:71) jp.co.spectrum.insight.core.datamodel.InsightValueStackImpl.(InsightValueStackImpl.java:86) jp.co.spectrum.insight.core. mvc.factory.InsightValueStackFactory.createValueStack(InsightValueStackFactory.java:85) at jp.co.spectrum.insight.core.mvc.dispatcher.InsightFilterDispatcher.(InsightFilterDispatcher.java:118) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(ネイティブ メソッド) sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) で、sun.reflect で。DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) の java.lang.reflect.Constructor.newInstance(Constructor.java:513) の java.lang.Class.newInstance0(Class.java:355) の java.lang.Class.newInstance (Class.java:308) org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:275) org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:422) org.apache. catalina.core.ApplicationFilterConfig.(ApplicationFilterConfig.java:115) at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4072) at org.apache.catalina.core.StandardContext.start(StandardContext.java:4726) ) org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057) で org.apache.catalina.core.StandardHost.start(StandardHost.java:840) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057) at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463) at org.apache .catalina.core.StandardService.start(StandardService.java:525) at org.apache.catalina.core.StandardServer.start(StandardServer.java:754) at org.apache.catalina.startup.Catalina.start(Catalina.java) :595) で sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) で sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) で sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) で java.lang. Reflect.Method.invoke(Method.java:597) at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)java:840) org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057) で org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463) で org.apache.catalina.core .StandardService.start(StandardService.java:525) at org.apache.catalina.core.StandardServer.start(StandardServer.java:754) at org.apache.catalina.startup.Catalina.start(Catalina.java:595) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) で、sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) で、sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) で、java.lang.reflect.Method で。 org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289) で invoke(Method.java:597) org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414) でjava:840) org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057) で org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463) で org.apache.catalina.core .StandardService.start(StandardService.java:525) at org.apache.catalina.core.StandardServer.start(StandardServer.java:754) at org.apache.catalina.startup.Catalina.start(Catalina.java:595) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) で、sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) で、sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) で、java.lang.reflect.Method で。 org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289) で invoke(Method.java:597) org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414) でorg.apache.catalina.core.StandardService.start(StandardService.java: 525) org.apache.catalina.core.StandardServer.start(StandardServer.java:754) で org.apache.catalina.startup.Catalina.start(Catalina.java:595) で sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) で sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) で sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) で java.lang.reflect.Method.invoke(Method.java:597) でorg.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)catalina.core.ContainerBase.start(ContainerBase.java:1057) at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463) at org.apache.catalina.core.StandardService.start(StandardService.java: 525) org.apache.catalina.core.StandardServer.start(StandardServer.java:754) で org.apache.catalina.startup.Catalina.start(Catalina.java:595) で sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) で sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) で sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) で java.lang.reflect.Method.invoke(Method.java:597) でorg.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)1057) org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463) で org.apache.catalina.core.StandardService.start(StandardService.java:525) で org.apache.catalina.core.StandardServer .start(StandardServer.java:754) で org.apache.catalina.startup.Catalina.start(Catalina.java:595) で sun.reflect.NativeMethodAccessorImpl.invoke0(ネイティブ メソッド) で sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl) .java:39) で sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) で java.lang.reflect.Method.invoke(Method.java:597) で org.apache.catalina.startup.Bootstrap.start( Bootstrap.java:289) org.apache.catalina.startup.Bootstrap.main (Bootstrap.java:414) で1057) org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463) で org.apache.catalina.core.StandardService.start(StandardService.java:525) で org.apache.catalina.core.StandardServer .start(StandardServer.java:754) で org.apache.catalina.startup.Catalina.start(Catalina.java:595) で sun.reflect.NativeMethodAccessorImpl.invoke0(ネイティブ メソッド) で sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl) .java:39) で sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) で java.lang.reflect.Method.invoke(Method.java:597) で org.apache.catalina.startup.Bootstrap.start( Bootstrap.java:289) org.apache.catalina.startup.Bootstrap.main (Bootstrap.java:414) でcore.StandardService.start(StandardService.java:525) at org.apache.catalina.core.StandardServer.start(StandardServer.java:754) at org.apache.catalina.startup.Catalina.start(Catalina.java:595) sun.reflect.NativeMethodAccessorImpl.invoke0 (ネイティブ メソッド) で.invoke(Method.java:597) at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)core.StandardService.start(StandardService.java:525) at org.apache.catalina.core.StandardServer.start(StandardServer.java:754) at org.apache.catalina.startup.Catalina.start(Catalina.java:595) sun.reflect.NativeMethodAccessorImpl.invoke0 (ネイティブ メソッド) で.invoke(Method.java:597) at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)NativeMethodAccessorImpl.invoke0(Native Method) の sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) の sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) の java.lang.reflect.Method.invoke(Method. java:597) org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289) で org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414) でNativeMethodAccessorImpl.invoke0(Native Method) の sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) の sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) の java.lang.reflect.Method.invoke(Method. java:597) org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289) で org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414) で

これは、XWorkConverter インスタンスが null であるためです。

注入されない理由を教えてください。

前もって感謝します

0 投票する
3 に答える
1386 参照

java - Struts 2 テキストフィールドは、value 属性がなくても値を表示します

textfieldユーザーが値を入力してアクションに送信するだけでよいStruts 2タグがあります。

このページが最初の回答の値を含むユーザー オブジェクトをロードする場合でも、テキスト フィールドに表示したくなく、テキスト フィールドを空白にしたいのです。

ただし、value 属性を指定しないと、ユーザー オブジェクトの値がこのフィールドに表示されます。

0 投票する
2 に答える
3438 参照

jsp - OGNL を使用して Struts 2 からデータを取得する方法

登録ユーザーをユーザーに表示する必要があります。ここでは Struts2 を使用していますが、私は非常に新しいです。しかし、Struts 2 を使用せずに要素を取得する方法を知っているので、コレクションを使用してコレクション内のすべての要素を設定し、それをリクエスト スコープに入れて JSP ページに転送し、そこで JSTL タグを使用してすべての要素を取得しますが、 Struts 2でそれを行う方法がわかりません。

これは、個々の要素を取得しようとしている私の JSP コードですが、機能していません

0 投票する
2 に答える
2543 参照

java - JSP 変数を Struts2 変数に変換するにはどうすればよいですか?

JSP 変数を Struts2 変数に変換するにはどうすればよいですか?

私は次のことを試しました:

一番多いエラーは

原因: タグ 'push'、フィールド 'value': スタックにプッシュする値を指定する必要があります。例: 人 - [不明な場所]

0 投票する
1 に答える
308 参照

java - さまざまな方法でデータを渡すStruts2

Struts2 フレームワークを使用する JSP ページの次のコードが提供されました。

この JSP ページを生成するアクション クラスには、(特に) 次のメソッドがあります: getCrudMode()getItem()、アイテムには と呼ばれるメソッドがありgetId()ます。

struts2 がこれらのメソッドを使用して<s:hidden>タグを埋める方法を理解しています。ただし、次の行に問題があります。

getVersion()まず、これは他の 2 つと同じように機能し、Struts2 はアクション クラスのメソッドを実行すると思いました。ただし、呼び出されるフィールドversionもメソッドもありませんgetVersion()<s:set name="version">JSP には変数タグもありません。このコードのポイントは何でしょうか? %{}本当に必要ですか?

crudmodeこれは削除する必要があるレガシー コードである可能性がありますが、最初の 2 つとitem.id後者の違いが何であるかはわかりません%{version}