簡體   English   中英

將值從MenuItemTag傳遞到.jsp

[英]Passing a value from MenuItemTag to .jsp

情況:

我有一個帶菜單和MenuItems的.jsp文件,它正在應用程序中的其他所有.jsp文件中顯示。 此時,其中的三個MenuItem分別將用戶重定向到不同的.jsp頁面。 但這很愚蠢,因為那些.jsp的AND Action類幾乎相同。 所以我想做的是:

  • 使這3個不同的菜單項/鏈接重定向到同一頁面
  • 單擊鏈接/ MenuItem時發送參數
  • 取決於'mode'的值:
    • 更改.jsp的布局
    • 更改Action類的onPostPrintx-actions中的變量值

碼:

帶有菜單小部件代碼的JSP頁面:

...
<ui:submenu name="Chapter A">
    <ui:menuitem link="/ThisPage.do">Printoption A</ui:menuitem>
    <ui:menuitem link="/ThisPage.do">Printoption B</ui:menuitem>
    <ui:menuitem link="/ThisPage.do">Printoption C</ui:menuitem>
    ...
</ui:submenu> 
<ui:submenu name="Chapter B">
    ...
</ui:submenu>
...

帶有打印按鈕的JSP頁面('ThisPage')

<html>
<div>
...
<c:set var="mode" value="${PageData.fields.mode}" />
<c:set var="title" value="${val:iif(mode=='1','Option1',val:iif(mode=='2','Option2','Option3'))}" />
...
<body>
    <html-el:form action="/Print" method="post" >
    <h1>Print ${title}</h1>
    <html-el:hidden property="field(mode)"/>
...
(assorted fields to filter output data)
...
        <html-el:submit property="event(printPdf)" styleClass="button" style="width=125">Print to .PDF</html-el:submit>
    <c:if test="${(mode=='3')}">
        <html-el:submit property="event(printWord)" styleClass="button" style="width=125">Print to .DOC</html-el:submit>
    </c:if>
...
</div>
</body>
</html>

動作類(“打印”)

...
public ActionForward onPostPrintPdf(ActionMapping mapping, ActionForm form, 
            HttpServletRequest request, HttpServletResponse response) 
            throws Exception 
{
    ...
    request.setCharacterEncoding("UTF-8");
    Connection connection = null;
    PageData inForm = ActionUtils.getInputForm(mapping, request, form);
    String mode = (String)inForm.getField("mode");
    ...
    (assorted variables, field/variable validation, export to Jasper Report, etc.)
    ...
    return ActionUtils.getInputRedirect(mapping, request, inForm);
}
...
(more actions for more printing options)
...

我正在努力的是:

我對Struts(和Java)還很陌生,我已經設置了一切(據我所知)以“接收”參數值並將其放在“ mode”變量中。 但是我一直在努力“發送”值,因為我不能在MenuItems中使用“ onclick”之類的東西。

此時,我真的不知道如何在單擊MenuItems之一時將值傳遞給“ mode”。

感謝吉米帶領我朝着正確的方向前進! 這是適用於我的代碼的解決方案:

...
<ui:submenu name="Chapter A">
    <ui:menuitem link="/ThisPage.do?field(mode)=optionA">Printoption A</ui:menuitem>
    <ui:menuitem link="/ThisPage.do?field(mode)=optionB">Printoption B</ui:menuitem>
    <ui:menuitem link="/ThisPage.do?field(mode)=optionC">Printoption C</ui:menuitem>
    ...
</ui:submenu> 
<ui:submenu name="Chapter B">
    ...
</ui:submenu>
...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM