[英]getting parameters from friendly url portlets jsr 286
我正在使用ibm門戶服務器。 有一個來自外部鏈接的鏈接。 即將到來的網址如下http://localhost.us.deloitte.com:10040/wps/myportal/home/gm_assignee_label/gm_eoa_page?invoker=esb?agsnid=32984?asgnmtid=50085
home,gm_assignee_label,gm_eoa_page是3個不同頁面的友好網址。 事后? 是關鍵值參數。
當我點擊上面的鏈接並且我的頁面被加載時,我想檢索這些參數。
我嘗試了ibm給出的以下鏈接。 但這並沒有幫助我http://publib.boulder.ibm.com/infocenter/wpzosdoc/v6r1/index.jsp?topic=/com.ibm.wp.zos.doc/dev/pltcom_pubrndrprm.html
我的portlet.xml代碼如下
<?xml version="1.0" encoding="UTF-8"?>
<portlet-app xmlns="http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd"
version="2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd"
id="com.ibm.faces.portlet.FacesPortlet.8b353a4492">
<portlet>
<portlet-name>EndOfAssignmentPortlet</portlet-name>
<display-name xml:lang="en">EndOfAssignmentPortlet</display-name>
<display-name>EndOfAssignmentPortlet</display-name>
<portlet-class>com.ibm.endofassignmentportlet.EndOfAssignmentPortlet</portlet-class>
<init-param>
<name>com.ibm.faces.portlet.page.view</name>
<value>/view/endofassignment/EOASearchAssignment.jsp</value>
</init-param>
<init-param>
<name>wps.markup</name>
<value>html</value>
</init-param>
<init-param>
<name>com.sun.faces.portlet.SAVE_REQUEST_SCOPE</name>
<value>true</value>
</init-param>
<expiration-cache>0</expiration-cache>
<supports>
<mime-type>text/html</mime-type>
<portlet-mode>view</portlet-mode>
<portlet-mode>EDIT</portlet-mode>
<portlet-mode>HELP</portlet-mode>
</supports>
<supported-locale>en</supported-locale>
<resource-bundle>
com.ibm.endofassignmentportlet.nl.EndOfAssignmentPortletResource</resource-bundle>
<portlet-info>
<title>EndOfAssignmentPortlet</title>
<short-title>EndOfAssignmentPortlet</short-title>
<keywords>EndOfAssignmentPortlet</keywords>
</portlet-info>
<supported-public-render-parameter>AssigneeID</supported-public-render-parameter>
<supported-public-render-parameter>AssignmentID</supported-public-render-parameter>
<supported-public-render-parameter>InvokerID</supported-public-render-parameter>
</portlet>
<default-namespace>http://EndOfAssignmentPortlet/</default-namespace>
<public-render-parameter>
<identifier>AssigneeID</identifier>
<qname xmlns:x="http://localhost.us.deloitte.com:10040/wps/myportal">x:agsnid</qname>
</public-render-parameter>
<public-render-parameter>
<identifier>AssignmentID</identifier>
<qname xmlns:x="http://localhost.us.deloitte.com:10040/wps/myportal">x:asgnmtid</qname>
</public-render-parameter>
<public-render-parameter>
<identifier>InvokerID</identifier>
<qname xmlns:x="http://localhost.us.deloitte.com:10040/wps/myportal">x:invoker</qname>
</public-render-parameter>
</portlet-app>
我正在嘗試在portlet的doView方法中獲取值,如下所示
String esbAssigneeID = request.getParameter("agsnid");
但我總是無效。
請幫忙。
TIA,Tejas
不知道這是否是最好的解決方案,但它確實有效。
com.ibm.ws.portletcontainer.portlet.PortletUtils.getHttpServletRequest(request).getParameter("agsnid")
該網址無效。 查詢字符串參數對應以&
分隔,而不是?
。 的?
只是請求URI和請求查詢字符串之間的分隔符。
所以鏈接應該是http://localhost.us.deloitte.com:10040/wps/myportal/home/gm_assignee_label/gm_eoa_page?invoker=esb&agsnid=32984&asgnmtid=50085 ,以便能夠訪問agsnid
和asgnmtid
作為請求參數。 否則,它們將成為invoker
參數的一部分。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.