問題タブ [ognl]
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.
java - ognl.ExpressionSyntaxException
ognl.ExpressionSyntaxException: Malformed OGNL expression: Add Customer [ognl.ParseException: Encountered " "Customer "" at line 1, column 5. 次のいずれかを期待していました:<EOF>
"," ...
"=" ...
"?" ...
"||" ...
"or" ...
"&&" ...
"and" ...
"|" ...
"bor"
私はjspのようなコードを使用しています
<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
<title>titlePager</title>
</head>
<body>
<s:form action="addsome">
<s:textfield label="Customer ID:" name="customerID" size="15" maxlength="10" />
</s:form>
</body>
</html>
java - Struts 2 ラジオ ボタン リスト
Struts 2ラジオボタンに取り組んでいます。アクションクラスからリストを取得したいのですが、次のエラーが発生しています
org.apache.jasper.JasperException: タグ 'radio'、フィールド 'list'、名前 'user.yourGender': 要求されたリスト キー '#user.gender' をコレクション/配列/マップ/列挙/反復子として解決できませんでしたタイプ。例: people または people.{name} - [不明な場所]
私のアクションクラスとユーザークラスは次のとおりです
HelloAction
ユーザークラス
helloForm.jsp
hello.jsp
java - struts2でセッションオブジェクトを動的に取得する方法
struts2 アプリケーションで動的にセッション オブジェクトを取得しようとしています。
resToken で取得できます<s:property value="%{resToken}">..
でも書けない<s:property> within <s:if test="">
二重引用符のエラーが表示されます..
jsp - Struts2 タグのリクエスト パラメータ値を確認する
jsp に次のコードがあります。
このアクションに次のようにアクセスすると: test.action?test=1
私は以下を取得します:
なぜ 1 は 1 に等しくないのでしょうか。
java - OGNL で Spring EL を使用する利点は?
Spring が Web フロー製品で OGNL よりも Spring EL を使用するようになった正確な理由を知りたいと思っていました。
OGNL を使用すると、単純なクラスを動的に作成し、メソッドなどをフローから直接実行できます。プレゼンテーションに基づいているため、実際の Web ページ テンプレート (つまり JSP) 内でこれを行うのは良い習慣ではないことはわかっていますが、Web フローはプログラムのロジックを制御し、そこで OGNL を効果的に使用する機能は非常に便利です。さらに、フローをテストして、簡単に機能することを確認できます。
だから、2つの質問:
特にSpring Webflowのコンテキストで、OGNLよりもSpring ELを使用することに大きな利点はありますか?
Spring EL を使用してオブジェクトを作成できますか?
struts2 - JSPでの2つのvaluestack文字列値の比較--struts2
よろしくお願いします。
保存された値がある場合は、ラジオボタンを事前に選択する必要があります。これを決定するには、基本的に値スタック内の2つの文字列を比較する必要があります。
(<s:radioフォームの他の入力要素に基づいて添付する必要のあるビジネスルールがあるため、現時点では使用できません)。
<s:set保存されたIDの値を以下のように実行してから、以下のように比較しようとしましs:iterateたが、明らかに正しくありませんでした。
基本的に、2つの文字列を比較する必要があります。私のコードは、以下のとおりです。以下のようにequals()と比較できないことはわかっています-何かアイデアはありますか?
本当にありがとう!
よろしく、VeeCan
struts2 - アプリケーション全体の ValueStack ライフサイクルは struts2 ですか?
いくつかの方法でプロパティを設定できValueStackます。
これらすべての値を JSP、freemarker、および Java のように取得できるようにする必要があります
この4つの設定方法それぞれのライフサイクルについて知りたいです。アプリケーション全体ですか。ValueStackはリクエストごとに作成され、アプリケーションとセッションの値はリクエストごとに設定されていますか?
4番目の方法が最も一般的なアプローチであることは知っていますが、アクションクラスに簡単にアクセスできないすべての場所でそれを使用しているわけではありません.
JSP でのアクセスについて別の疑問があります
stack.getContex().put()また、 と の両方で5 番目のポイントがどのように機能するかを知りたいstack.set()です。私がアクセスしている6番目のresultDTOは別のルートであり、7番目ではデフォルトルートの子であるValueStackであることを理解しています。8 番目では、デフォルトのルートから検索を開始します。
http://struts.apache.org/2.0.11.1/docs/ognl.html、http://struts.apache.org/2.1.2/struts2-core/apidocs/com/opensymphony/xwork2/utilを調べました/ValueStack.htmlとかなり混乱このリンクhttp://www.opensymphony.com/ognl/html/DeveloperGuide/introduction.html#embeddingOGNL
これらすべてを言ったので、URLを?debug=browserstack.getContext().put()に設定することで値を明確に確認できるため、メソッドを使用する傾向はほとんどありません。私が間違っている場合は、私に助言してください。
java - Struts 2 OGNLで動的キーを使用してMap属性にアクセスする
属性名とマップである文字列のリストがあります。文字列リストの属性名を使用して、マップ内のモデル (ex.project) にアクセスしようとしています。
これが私が今持っているものです。
属性名をハードコーディングすると、正常に機能します。
アドバイスをいただければ幸いです。
java - Struts2 debug=browser はアクション クラス変数の URL パラメータをキャプチャしませんか?
1 つのメンバー変数「データ」を持つ非常に単純なアクション クラスがあります。通常の URL を送信すると、Tomcat コンソールに次のような値が表示されます。Test action data=hello
tomcat コンソールでmytestaction.action?data=hello&debug=browserを使用して URL を変更するようなデバッグ モードを使用すると、 Test action data=null. ただし、パラメーターのブラウザー ognl コンテキスト ツリーに値が表示されます。ただし、dataAction クラスが展開されている場合は同じです。
debug=xmlのような他のデバッグ モードでは、次のようになります。
そして、デバッグ=コンソールモードで、OGNL#action.data =>shows hello
も印刷し#parameters.data[0] => shows helloます。
これは本物のバグですか?または私は何かが欠けていますか?struts.xml で規約とマッピングを試しましたが、どちらも同じ結果になりました。
jsp - Struts2 OGNL - リクエスト パラメータの送信順序
jsp と struts2 を使用しており、次のシナリオがあります。
このフォームが送信されると、"save" メソッドの前に OGNL 式の employee.name (getEmployee().setName() と同等) が実行されます。また、「empId」の値は getEmployee() メソッド内では使用できません。「empId」の値は、「save」メソッド内でのみ使用できます。getEmployee()内で「empId」の値を取得することは可能ですか?
以下は、私の Action クラスのコードです。