حقول ognl static لا تعمل في Struts2
سؤال
غير قادر على الوصول إلى الحقول الثابتة مع ognl مع Struts2
<s:checkbox name="operation" fieldValue="@com.xx.xxx.webapp.action.EntryAction@OPERATIONAL" />
ما سبق يتحول إلى HTML على النحو التالي
<input type="checkbox" name="operation" value="@com.xx.xxx.webapp.action.EntryAction@OPERATIONAL" id="entry_operation"/>
بدلاً من ذلك ، أعلن الثابت الثابت كما
com.xx.xxx.webapp.action.EntryAction.OPERATIONAL = "OPERATIONAL";
أنا ثابت <constant name="struts.ognl.allowStaticMethodAccess" value="true"/>
ضبط بشكل صحيح
المحلول
لا ترتبط مشكلتك بالحقول الثابتة ، ولكن إلى بناء جملة STRUTS2 الأساسي. الكود خاطئ على عدة مستويات.
أولا ، هو القيمة السمة التي يجب أن تستخدمها ، بحيث تفسر STRUTS2 ما بداخله كشيء لتقييمه وتقديمه (قيمة الحقل هو فقط لتلك الحالات النادرة التي تحتاج فيها إلى كتابة قيمة مخصصة ثابتة = "" "السمة في HTML).
ثانياً ، يجب ألا تستخدم الحقول الثابتة إذا كنت تتعلم Struts2 ، وفهم السيناريوهات الأساسية والطباعية أولاً.
ثالثًا ، ليس من المنطقي استخدام هذه السلسلة كقيمة خانة اختيار ، والتي تحتوي على قيمتين فقط (صحيحة وكاذبة).