如何将输入文本值作为 portlet 参数传递

How to pass input text value as portlet param

我有一个 portlet 页面:

<%@ taglib uri="http://java.sun.com/portlet_2_0" prefix="portlet" %>

<portlet:defineObjects />

<portlet:resourceURL var="resourceUrl">
    <portlet:param name="startDate" value="" />
</portlet:resourceURL>

<input id="startdateexportaging" type="text" />

<a style="font-size: 15px;" href="${resourceUrl}" >URL</a>

如何在单击 resourceUrl 和 link 时将 startdateexportaging 的内容作为 portlet 参数 startDate 传递?

单击 link 后,您可以使用 onclick 处理程序将内容添加到 URL。但这会很麻烦,容易出错并且没有必要。

相反,您应该将 input 添加到 form 并将 URL 定义为操作参数:

<aui:form action="<%= resourceUrl.toString() %>" method="get"> 
    <aui:input name="startDate" type="text" />
<aui:button value="Download" type="submit" />
</aui:form>

(如果您不使用 AUI - 您也可以使用简单的 HTML 标签)

此解决方案的另一个优点:按钮而不是 link 使用户更容易理解文本字段中的内容已提交。将它与 SO 上 links 和按钮的使用进行比较 - 如果您输入一些信息,您必须点击一个按钮。

并且搜索引擎更容易解析网站,因为那些尝试遵循 links - 但忽略按钮。