`
java032
  • 浏览: 86827 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

未定题目

阅读更多

I am developing the JSP portlet using plugin sdk.

I want to implement AJAX in this portlet.

I am facing the problem while sending the URL in

jQuery.ajax({
type: "GET",
url: "/changemode.jsp",
data: "modeVal=rahul",
success: function(msg){
alert( "Data Saved: " + msg );
}});


the changemode.jsp is @ same location as the calling JSP.

It doest show any error msg, but the changemode.jsp is not get called.

Please advice.

Thanks in advance.

------------------------------------------------------------------------------------

you need to pass url like that

var url = '<portlet:renderURL windowState="<%= LiferayWindowState.EXCLUSIVE.toString() %>"><portlet:param name="struts_action" value="/ext/search/changemode" /></portlet:renderURL>';

and struts action entry should be in struts-config.xml and tiles-defs.xml

-------------------------------------------------------------------------------------

Use the serveResource() method (javax.portlet.GenericPortlet):

 1     public void serveResource(ResourceRequest request, ResourceResponse response)
 2             throws PortletException, IOException {
 3        
 4         // Make the parameter "modeVal" available in changeMode.jsp
 5         String modeVal = ParamUtil.getString(request, "modeVal");
 6         request.setAttribute("modeVal", modeVal);
 7        
 8         // Dispatch to changeMode.jsp
 9         PortletRequestDispatcher dispatcher = getPortletContext().getRequestDispatcher(
10                 "/WEB-INF/jsp/changeMode.jsp");
11         dispatcher.include(request, response);
12     }



In your jsp, set the url to <portlet:resourceURL/> :

1 jQuery.ajax({
2 type: "GET",
3 url: "<portlet:resourceURL />",
4 data: "modeVal=rahul",
5 success: function(msg){
6 alert( "Data Saved: " + msg );
7 }});



If you need to handle dispatching to more than one page, specify an id like this:

1 <portlet:resourceURL id="changeMode" />



Check the id in serveResource() to decide where to dispatch the request.

1 if( request.getResourceID().equals("changeMode")) {
2 . . .
3 }
-------------------------------------------------------------------------------------
It is really helpful .... now i'm one step ahead ...

I have some question regarding serveResource() method .....

1. should i write a servlet class which extends form GenericServlet and implement serveResource() method.

2. But in that case while calling that servlet from jsp with url <portlet:resourceURL /> what
should my url mapping of <servlet-mapping> in web.xml

3. Is it possible to set session a value in the same servlet and use it later.

4. On which object should i set session. PortletSession or HttpSession.
-------------------------------------------------------------------------------------------
Hi Rahul, good to hear that you're making progress!

Now, for your additional questions ...

1. Extend javax.portlet.GenericPortlet , example:

 1 package com.example.portal.test.ajax;
 2
 3 import java.io.IOException;
 4
 5 import javax.portlet.GenericPortlet;
 6 import javax.portlet.PortletException;
 7 import javax.portlet.PortletRequestDispatcher;
 8 import javax.portlet.RenderRequest;
 9 import javax.portlet.RenderResponse;
10 import javax.portlet.ResourceRequest;
11 import javax.portlet.ResourceResponse;
12
13 import com.liferay.portal.kernel.util.ParamUtil;
14
15 public class AjaxPortlet extends GenericPortlet {
16    
17     @Override
18     public void serveResource(ResourceRequest request, ResourceResponse response)
19             throws PortletException, IOException {
20        
21         // Make the parameter "modeVal" available in changeMode.jsp
22         String modeVal = ParamUtil.getString(request, "modeVal");
23         request.setAttribute("modeVal", modeVal);
24        
25         // Dispatch to changeMode.jsp
26         PortletRequestDispatcher dispatcher = getPortletContext().getRequestDispatcher(
27                 "/WEB-INF/jsp/changeMode.jsp");
28         dispatcher.include(request, response);
29     }
30    
31     @Override
32     public void doView(RenderRequest request, RenderResponse response) throws PortletException, IOException {
33         PortletRequestDispatcher dispatcher = getPortletContext().getRequestDispatcher("/view.jsp");
34         dispatcher.include(request, response);
35     }
36
37 }


2. Specify the above portlet class in /WEB-INF/portlet.xml :

1 <portlet-class>com.example.portal.test.ajax.AjaxPortlet</portlet-class>


3. and 4. If you're not using servlets in your application, use PortletSession. If you need to share session between servlet and portlet, refer to this article.
---------------------------------------------------------------------------------
but now i'm confused because i already have an entry in portlet.xml for <portlet-class> so,

can a portlet have more than one <portlet-class> and if yes what property needs to be set.

If not then can you suggest any other way ....
--------------------------------------------------------------------------------
You cannot have more than one entry for <portlet-class> in portlet.xml

Is your existing entry com.liferay.util.bridges.MVCPortlet ? This class extends LiferayPortlet which extends GenericPortlet. MVCPortlet implements serveResource() like this:

 1     public void serveResource(
 2             ResourceRequest resourceRequest, ResourceResponse resourceResponse)
 3         throws IOException, PortletException {
 4
 5         String jspPage = resourceRequest.getParameter("jspPage");
 6
 7         if (jspPage != null) {
 8             include(
 9                 jspPage, resourceRequest, resourceResponse,
10                 PortletRequest.RESOURCE_PHASE);
11         }
12         else {
13             super.serveResource(resourceRequest, resourceResponse);
14         }
15     }


If this does not suit your needs, you have to replace the entry in <portlet-class> with your own extension of GenericPortlet (e.g., AjaxPortlet).
--------------------------------------------------------------------------------

分享到:
评论

相关推荐

    查看下载会议日程-中华医学会放射学分会.docx

    首先,郭启勇教授发表了关于MRI研究的未定题目讲座,为大会定下了学术探讨的基调。祁吉博士分享了中毒性脑病的MRI表现,为了解神经系统病变提供了新的视角。孟悛非教授深入讲解了骨骼肌细胞内脂肪MRS定量研究,揭示...

    windows下围棋级位测试6000题

    "Windows下围棋级位测试6000题"是一款专为围棋爱好者设计的练习软件,它包含了6000道围棋题目,旨在帮助未定段的小朋友们进行系统性的学习和训练,提升他们的围棋水平。 首先,我们要理解什么是级位。在围棋的世界...

    2000年考研数学二试题及答案解析1

    利用导数比较函数大小的题目,可能涉及到洛必达法则或单调性分析,考验的是考生在面对未定式极限时的分析和解决问题的能力。求解另一极限值的题目,则要求考生具备运用洛必达法则或泰勒展开等高级技巧的能力。而关于...

    山东省日照市五莲县2021-2022学年高一上学期期中考试 数学 .doc

    - 题目3涉及到不等式的性质,特别是如果a&gt;b,那么a^3&gt;b^3通常是正确的,但这并不意味着ac&gt;bc或者a^2&gt;b^2,因为c的正负未定。 3. **逻辑命题**: - 题目2是关于特称命题的否定,原命题是存在一个正数x,使得x^2021...

    高一物理机械能守恒定律复习训练题[精选].doc

    13. 重力势能的性质:重力势能是相对于参考面而言的,位置确定但参考面未定,势能不确定;距零势能面越远,势能不一定越大,还取决于高度方向;势能变化量等于重力做功,所以从-5J到-3J,势能增加了,选项D正确。 ...

    新疆和田地区三支一扶大学生2019年考试招募200人试题及答案解析(1).docx

    7. 效力未定合同的概念:合同法中,效力未定合同包括限制民事行为能力人签订的合同和无权代理人签订的合同,这类合同需经法定代理人或被代理人追认后才生效。 8. 计算机网络基础:Internet中的主机地址由IP地址唯一...

    陕西省西安市高陵区第一中学、田家炳中学2020-2021学年高一上学期第一次月考数学(文)试题 含解析.doc

    由于2^ab&gt;1意味着ab&gt;0,但这并不意味着1/a+1/b成立,因为a和b的正负情况未定。同样,1/a+1/b也不能推导出2^ab&gt;1,因此两者之间不存在充分或必要关系,答案为D选项,即既不充分也不必要条件。 3. 考察了奇函数和函数...

    嵌入式系统复习题.docx

    异常的优先级从高到低排序是:复位、数据终止、快速中断(FIQ)、普通中断(IRQ)、预取指令终止、未定指令和软件中断(SWI)。 RISC(精简指令集计算机)和CISC(复杂指令集计算机)是两种不同的处理器设计哲学。RISC...

    数学学科精心设计开放题 培养学生创新思维.doc

    首先,条件开放的题目是指教师在出题时故意留下一些条件未定,允许学生根据已有的信息自行补充或修改条件,并选择适合自己的解题路径。这种方法可以极大地发挥学生的主观能动性,比如在探究食堂大米需求量的问题中,...

    广东省揭阳市第三中学2019_2020学年高一数学上学期第一次月考试题

    ①篮球运动员集合定义不明确,因为"优秀"的标准未定;②没有具体内容,无法判断;③两个集合是否相同取决于它们的元素是否完全一致;④空集是任何非空集合的真子集,但不是其自身的真子集。因此,只有④是正确的。 ...

    第一章高数考研题.pdf

    洛必达法则则是解决未定式极限的一种重要工具,用于计算形如`0/0`或`∞/∞`的极限。 5. **对数函数和三角函数的性质**: 在第二题中,利用了对数函数的性质以及正切和正弦函数的关系,将复杂的极限问题转化为简单...

    《误差理论与数据处理A》期末考试

    以下是根据题目描述和部分内容解析的相关知识点: 1. **数据处理与有效数字**:在保留有效数字时,需要考虑测量结果的精度。例如,34.965保留3位有效数字为34.9;7.965同样保留3位有效数字为7.97。 2. **计算结果...

    中国政法大学《民法总论》期末复习习题(含答案).pdf

    6. 无效民事行为与效力未定行为:李某购买地毯的行为尽管基于错误的预期,但行为本身是有效的,因为没有违反法律规定,不属于无效或效力未定行为。 7. 无权代理:甲厂业务员邓某的行为构成无权代理,但合同有效性取...

    实验五 用Mathematica软件计算一元函数的积分.pdf

    例如,要计算积分∫(x^3 - 4sin x + 2arctan x - 9)dx,只需输入`Integrate[x^3 - 4Sin[x] + 2ArcTan[x] - 9, x]`,软件会自动计算并返回结果,通常会包含一个未定的常数C。 实验中还给出了其他不定积分的示例,...

    内蒙古通辽市科左中旗宝龙山中学2016届九年级数学上学期期中试题含解析新人教版

    由于a的符号未定,无法确定具体形状,但可以知道它们的y轴截距都是c。 7. 配方法解一元二次方程: 配方法是将一元二次方程x^2+px+q=0转化为(x+r)^2=s的形式,以便直接求解。对于0=5x^2-2x-6,可以转换为0=(5x-1)^2-...

    山东省2013年高考英语二轮复习 题型技法指导专题专题一 单项填空

    5. **交际用语**:题目9展示了日常对话中对于邀请的回答,"It depends"表示情况未定,体现了考生在实际语境中灵活运用交际用语的能力。 从历年山东高考的考点统计来看,**动词及其相关知识**是高频考点,包括动词...

    离散1期末1

    试卷中提到的选项没有直接回答CH的状态,但C选项最接近CH的本质,即猜想存在一个基数,它位于这两个基数之间,但具体数值未定。 4. 量词的定义中,如果 (∃x)P(x) = F 为真,意味着至少存在一个x使得P(x)为假。因此...

    【创新设计】2014届高考数学一轮总复习 第七篇 第1讲 不等关系与不等式 理 湘教版

    即使知道a&gt;b,也不能直接得出ac&gt;bc或者|a|&gt;|b|,因为c的符号未定。只有当c&gt;0时,ac&gt;bc才成立,而|a|&gt;|b|需要考虑a和b的正负。只有2a&gt;2b是恒成立的,因为两边同时乘以正数2不会改变不等式的方向。 第三题涉及了...

    考研数学知识点大纲.docx

    洛必达法则主要用于解决“0/0”或“∞/∞”型的未定式极限问题,掌握它对于解决复杂极限问题是不可或缺的。考生应通过大量练习来熟悉各种极限问题的求解方法。 二、连续性、可导性和可微性 这部分内容考查考生对...

Global site tag (gtag.js) - Google Analytics