在这个例子里,在JSR 168 Portlet里添加ajax功能,这样就能使portlet的效果更加人性化。
原理:
在IBM Portal的portlet,只需要为portlet配置servlet就可以让portlet页面上的脚本请求并能接收到xml文件,跟servlet环境下的区别就是要请求当前portlet的servlet位置,用这个语句可以获得:
renderResponse.encodeURL(renderRequest.getContextPath());
实现例子:
在这个例子里,在页面上有两个输入框,一个是用户名,另一个是信息。当用户按下提交时,便会把页面的信息提交到服务器并返回客户端,当客户端接收到这个XML,解释其内容并显示到页面显示信息的位置。
1)用RAD新建个Portlet项目,名为AjaxTest
2) 创建Servlet代码:
AddMessageServlet.java
package com.portal.ajaxtest.servlet;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class AddMessageServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doPost(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("GBK");
String userName=request.getParameter("userName");
String message=(String)request.getParameter("message");
System.out.println("userName=="+userName+"++++++++++message=="+message);
response.setContentType("text/xml;charset=GBK");
response.setHeader("Cache-control", "no-cache");
String xml="<?xml version="1.0" encoding="GBK"?>";
String str=""
+""+userName+""
+""+message+""
+"";
System.out.println(xml+str);
response.getWriter().write(xml+str);
}
}
3) 创建页面代码
<%@page session="false" contentType="text/html;charset=GBK" import="java.util.*,javax.portlet.*,com.portal.ajaxtest.*" %>
<%@taglib uri="http://java.sun.com/portlet" prefix="portlet" %>
用户名: | |
留言信息: | |
4)配置web.xml
<?xml version="1.0" encoding="UTF-8"?>
ttp://java.sun.com/dtd/web-app_2_3.dtd">http://java.sun.com/dtd/web-app_2_3.dtd">
Ajax Test
AjaxTestServlet
Ajax Test Servlet
Ajax Test Servlet
com.portal.ajaxtest.servlet.AddMessageServlet
AjaxTestServlet
/AjaxTestServlet
index.html
index.htm
index.jsp
default.html
default.htm
default.jsp
http://java.sun.com/portlet
/WEB-INF/tld/std-portlet.tld
5)打包发布AjaxTest.war
[@more@]来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10230675/viewspace-1001304/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/10230675/viewspace-1001304/