سؤال

وأنا الغريب إذا كان أي شخص يعرف إذا كان من الممكن لمدخل واحد لاحتواء عدة صفحات، دعنا نقول صفحات JSP. وعلاوة على ذلك هل من الممكن أن تصل إلى هذه الصفحات المختلفة داخل نفس المدخل؟

وعلى سبيل المثال. دعنا نقول لدي مدخل واحد. وفي هذا المدخل أريد أن العرض الأولي لتكون صفحة JSP مع وصلات فقط 5 على ذلك ل5 صفحات JSP مختلفة. وعندما ينقر المستخدم على أحد هذه الروابط 5، فإنه تحميل صفحة JSP المناسبة في المدخل.

والهدف النهائي سيكون أساسا موقع على شبكة الانترنت مصغرة قليلا عن الموجودة داخل مدخل.

والآن، وأنا أفهم أن هذا قد لا يكون أفضل استخدام المدخل، ولكن من أجل مشروع أعمل على، ما زلت أود أن أعرف إذا كان ذلك ممكنا.

وشكرا!

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

المحلول

وبالتأكيد، مدخل يمكن أن تحتوي على أكثر من واحد JSP.

ويمكنك عرض أي JSP تريد عبر PortletRequestDispatcher في حياتك <لأ href = "http://portals.apache.org/pluto/portlet-1.0-apidocs/javax/portlet/GenericPortlet.html#doView(javax.portlet.RenderRequest،٪20javax.portlet .RenderResponse) "يختلط =" نوفولو noreferrer "> doView (أو doHelp أو doEdit) الأسلوب:

protected void doView(RenderRequest req, RenderResponse resp)
       throws PortletException, IOException, UnavailableException {
   resp.setContentType("text/html"); 
   String myview = req.getParameter("myview");
   String view = "/WEB-INF/jsp/" + (myview==null ? "bar" : myview) + ".jsp";
   PortletRequestDispatcher dispatcher = 
                                 getPortletContext().getRequestDispatcher(view);
   dispatcher.include(req, resp);
}

هل يمكن استخدام المعلمة لتعيين العرض. في JSP مع الروابط، وكنت بحاجة إلى استخدام API مدخل لإنشاء / تشفير الروابط إلى المدخل. على سبيل المثال:

<portlet:renderURL>
  <portlet:param name="myview" value="foo"/>
</portlet:renderURL>

(أنا لم حقا أبقى على اطلاع على JSR286 / المدخل 2.0 - هذه الاشياء يجب أن تعمل مع JSR168 / المدخل 1.0 - لذا فإن الأمر يستحق التحقق من API جديد إذا كنت تستخدم ذلك)

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