我已经创建了liferay portlet,在其中,我只需从Api获取天气数据,并通过ajax获取数据,如下所示,现在我想将这些json数据从ajax传递到portlet页面,并将其保存在portlet文件中。我是liferay的新手,请任何人指导如何做到这一点。
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/portlet_2_0" prefix="portlet" %>
<%@ taglib uri="http://liferay.com/tld/aui" prefix="aui" %><%@
taglib uri="http://liferay.com/tld/portlet" prefix="liferay-portlet" %>
<%@
taglib uri="http://liferay.com/tld/theme" prefix="liferay-theme" %>
<%@
taglib uri="http://liferay.com/tld/ui" prefix="liferay-ui" %>
<liferay-theme:defineObjects />
<portlet:defineObjects />
<select id="list" >
<option>Pakistan</option>
<option>India</option>
<option>America</option>
<option>China</option>
<option>Canda</option>
</select >
<br><br>
<button onClick="setup()" id="btnSubmit">Submit</button>
<div id='demo'></div>
<script>
var country
function setup()
{
selectElement=document.querySelector('#list');
var country=selectElement.value;
$.ajax({
dataType: 'json',
success: function(data)
{
document.getElementById("demo").innerHTML =
'<br>country : '+data.name+
'<br>temprature : '+data.main.temp +
' °F<br>Percipitation : '+data.clouds.all +
' %<br>wind speed : '+data.wind.speed +
'<br>humidity : '+data.main.humidity
},
url: 'http://api.openweathermap.org/data/2.5/weather?q='+country+'&appid=e53a861b8514a25b48d943fec2b4fcd7&units=imperial'
});
}
</script>
这是portlet文件
package assignment1.portlet;
import assignment1.constants.Assignment1PortletKeys;
import com.liferay.portal.kernel.portlet.bridges.mvc.MVCPortlet;
import java.io.IOException;
import javax.portlet.Portlet;
import javax.portlet.PortletException;
import javax.portlet.PortletSession;
import javax.portlet.RenderRequest;
import javax.portlet.RenderResponse;
import org.osgi.service.component.annotations.Component;
@Component(
immediate = true,
property = {
"com.liferay.portlet.display-category=category.sample",
"com.liferay.portlet.header-portlet-css=/css/main.css",
"com.liferay.portlet.instanceable=true",
"javax.portlet.display-name=Assignment1",
"javax.portlet.init-param.template-path=/",
"javax.portlet.init-param.view-template=/view.jsp",
"javax.portlet.name=" + Assignment1PortletKeys.ASSIGNMENT1,
"javax.portlet.resource-bundle=content.Language",
"javax.portlet.security-role-ref=power-user,user",
"com.liferay.portlet.private-session-attributes=false"
},
service = Portlet.class
)
public class Assignment1Portlet extends MVCPortlet
{
@Override
public void doView(RenderRequest renderRequest, RenderResponse renderResponse)
throws IOException, PortletException {
// TODO Auto-generated method stub
PortletSession session=renderRequest.getPortletSession();
session.setAttribute("LIFERAY_SHARED_sessionMessage", "Sent Data From First Portlet",PortletSession.APPLICATION_SCOPE);
super.doView(renderRequest, renderResponse);
}
}
当您使用JSP构建HTML输出时:为了与portlet通信,您需要使用<代码>
还有一种选择是只使用独立于portlet的REST服务。
还有一个评论:您不应该将数据存储在会话中,将其存储为请求/响应属性就足够了,以便在渲染期间在JSP中可用。它以后不会使用。
问题内容: 我想将变量传递到特定页面。我找到了一个简单的示例,解释了如何在Wordpress中使用Ajax。 JavaScript: 插入的一段PHP 不幸的是我不能传递变量。我检查了代码,并得到以下错误: 您是否知道另一种获得相同结果的方法? 问题答案: 您距离很近,但缺少一些小东西…… 我在评论中的意思是,您需要在两种情况下都使用这种方式: 更改 为 : 新增 : 对于您的jQuery脚本文件
hello jsp页面布局如下: 这是用来扩展HttpServlet的servlet类:
我正在尝试使用jquery将值从一个JSP页面传递到另一个页面。在下面的代码中,我想将变量“Process Id”传递到另一个页面。加载下面的JSP页面后,该值应该传递到另一个页面。 我收到错误:“procId未定义”
我正在尝试将某些值从servlet传递到JSP页面,并添加已传递到标记的值,阅读了许多文章,我得到了以下代码。 使用输入页面选择文件 验证上传的文件 调用上传。java将上传的文件保存在WEB-INF中 在上载的文件中,选定的文件保存为“我的”。txt 使用缓冲区读取文件内容并将其保存到变量 将其传递到JSP页面 上载JAVA 上传文件后, mypage.jsp 现在,当我点击上传按钮完成所有这些
问题内容: 我正在使用SpringMVC,我正在将数据从Ajax传递到控制器,但是我在控制器中得到了空值,请检查下面的代码 MyControllerCode 任何人都可以帮助我 问题答案: 嘿享受下面的代码。 Javascript AJAX调用 弹簧控制器代码 以下搜索类如下 该类的优点是,将来可以根据需要向该类添加更多变量。 例如。 如果要实现排序功能。
我正在尝试开发简单的购物车应用程序。所以我在Derby DB中有一个简单的数据库表。从那里,我将数据检索到JSP中的一个表中。现在,我想将该值传输到servlet。这是我的代码部分: 项目列表。JSP 所以任何人都知道如何传递这个值(例如:-