`
java032
  • 浏览: 86446 次
  • 性别: 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

    1. 郭启勇教授探讨了未定题目的MRI研究。 2. 祁吉博士分享了中毒性脑病的MRI表现。 3. 孟悛非教授介绍了骨骼肌细胞内脂肪MRS定量研究。 4. 李坤成医生讲解了3T对比增强全心冠状动脉MRA在冠心病检测中的应用。 5. ...

    windows下围棋级位测试6000题

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

    山东省日照市五莲县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...

    江苏省如皋中学2020学年高一语文下学期5月段考试题(无答案)苏教版.doc

    4. 文言文词汇和句式:题目中涉及到文言文的词语解释,如“属”、“属草稿未定”、“从容辞令”等,还有文言句式的判断,如倒装句和词类活用,这些都是高中语文文言文部分的重要知识点。 5. 文言文翻译和理解:文言...

    广东省揭阳市第三中学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不会改变不等式的方向。 第三题涉及了...

    2022零基础提前学作业3(周洋鑫)陆小马功钟浩.pdf

    根据提供的文件信息,这份文档似乎是关于考研数学的学习资料,特别是涉及到极限计算的主题。下面将详细说明文件内容中出现的知识点。...考生可以通过这些题目来加强自己的极限计算能力,为考研数学部分打下坚实的基础。

    07年北大数学分析考试试题

    试题可能包含求解高阶导数、利用洛必达法则确定未定式极限、应用积分中值定理证明不等式等内容。 再者,级数理论包括常数项级数、函数项级数的收敛性判断、泰勒级数和傅里叶级数等。这部分可能考察级数的敛散性判定...

Global site tag (gtag.js) - Google Analytics