سؤال

لديّ حجم مستخدم حيث أريد ضبط قيمة الحقل الذي أحتفظ به في الجلسة وأضفت إلى. أبقي "mymodel" في FlowsCope

الآن أود تعيين خاصية سلسلة لكائن MyModel إذا كانت فارغة ، لذلك أريد أن أفعل شيئًا كهذا:

<on-render>
    <evaluate expression="if empty(flowScope.myModel.name)) 
           flowScope.myModel.name = myModel.suggestName()" />
</on-render>

عندما يكون الاقتراح () هو عبارة عن طريقة مثيل لفئة MyModel التي تُرجع سلسلة SPEL تخبرني بما يلي عند تقييم التعبير:

EL1041E:(pos 3): After parsing a valid expression,
there is still more data in the expression: 'empty'

لذلك أعتقد أن Spel لا يعرف الوظيفة "فارغة" مثل EL القياسية (على سبيل المثال ، تحقق من سلسلة فارغة)

في دليل الربيع (6.5.9 وظائف) قرأت أنه يمكنني تسجيل وظائف بلدي. وبهذه الطريقة يمكنني تسجيل وظيفة فارغة وتفويض stringUtils.isempty ()

كيف لي أن افعل ذلك؟ هل هو النهج الصحيح؟ يمكنني القراءة في دليل تدفق الويب كيفية تسجيل expressionparser ضمنيًا ولكن كيفية إضافة الوظيفة إلى standardevaluationContext هو لغز بالنسبة لي.

أي مساعدة موضع تقدير

هل كانت مفيدة؟

المحلول

يجب أن تكون قادرًا على تنفيذ طرق على كائن سلسلة ، لذا حاول flowScope.myModel.name.isEmpty() أو flowScope.myModel.name.length() == 0

إذا فشل ذلك flowScope.myModel.name == "" سيكون له نفس التأثير.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top