سؤال

أستخدم Liferay 6.2 على JBoss 7.1.1.كما أنني أستخدم JSP كعرض مع AlloyUI.

أريد زرًا كرابط وكمرسل لقيمة إلى طريقة في فئة MVCPortlet.الرابط موجود داخل مصفوفة جافا.السمة التي تم تمريرها إلى طريقة Java موجودة داخل حقل الإدخال.

إنه يعمل إذا استخدمت واحدًا فقط من هذين.حاولت الجمع بينهما لكنه لا يعمل.حاولت هذا:

<a href="<%=unread[i][k]%>" target="_blank" >
<aui:button type="submit" />
</a>

إنه يستدعي الطريقة ولكنه لا يفتح علامة تبويب جديدة في المتصفح.في متصفحي أستطيع أن أرى أنه رابط، إذا نقرت عليه بزر الماوس الأيمن -> علامة تبويب جديدة، فإنه يفتحه بشكل صحيح في علامة تبويب جديدة.ولكن ليس إذا قمت فقط بالنقر فوق الزر.الطريقة الثانية:

<aui:button type="submit" onclick="window.open('http://www.google.de', '_blank', ''); return false;"/>

إنه يفتح Google فقط ولكنه لا يستدعي الطريقة.كما أنه ليس من الممكن الحصول على سمة Java داخل Javascript، ولكن يمكنني الحصول على القيمة من حقل الإدخال المخفي.ولكن لا تزال هناك مشكلة وهي عدم استدعاء الطريقة.

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

المحلول

قررت أن أبدأ بالحل الثاني.الخطأ الأول كان return false; في معلمة onclick الخاصة بي، لذلك قمت بحذفها.ثم تعمل وظيفة الإرسال كالمعتاد.كانت المشكلة التالية هي الوصول إلى متغير Java داخل طريقة javascript onclick، لذلك استخدمت EL وJSTL لتفعيل الأمر:

<c:set var="url" scope="session" value="<%=unread[i][k]%>"/>
<aui:button type="submit" onclick="window.open('${url}', '_blank', '');" />
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top