Struts2 - 菜单和包括页面

时间:2013-01-24 12:50:38

标签: jsp menu struts2

我有一个关于Struts2的基本问题。我想在下一个样式中实现一个简单的Web应用程序:

                           TITLE                 12:42
------------------------------------------------------
MENU              | **********************************
1. Config         | **********************************
 - Products       | **********************************
 - Customers      | **********************************
2. Operations     | **********************************
 - ...            | **********************************
3. Statistics     | **********************************

请原谅我,我不是网页设计师。 :)

所以我的网络应用程序有一个标题,其他信息(例如当前时间)将放在标题部分。在左侧将有一个菜单,在右侧(将占据显示器的80%)将出现一个页面(我用许多星星指示它)取决于右侧选择的菜单。登录后,右侧将为空,如果用户点击菜单,则会显示特定页面。

我想使用Struts2来控制页面流。

请您介绍一下如何开始?

谢谢, 诉

3 个答案:

答案 0 :(得分:1)

这很可能是一个与设计和布局控制有关的问题,而你在这里几乎没有什么好的选择

  1. 用户Struts2,基于用户输入的JSP和控件视图
  2. 使用一些装饰框架,如Site-mesh或Tiles
  3. 您可以创建一个应用程序框架或主模板,可以定义以下部分

    1. 顶部导航
    2. 左侧小组
    3. 右侧小组
    4. 页脚
    5. 工作区域
    6. 以上所有部分都可以预定义,但工作区域可以通过基于应用程序逻辑发送视图在运行时更改。

      对我而言Tiles是一个很好的方式,它将以一种简单灵活的方式为你做很多事情。

答案 1 :(得分:0)

我的解决方案最终:

index.jsp

<body>
   <table border="0">
      <tr>
         <td colspan="2"><s:include value="header.jspf"/></td>
      </tr>
      <tr>
         <td><s:include value="menu.jspf"/></td>
         <td><s:include value="%{page}"/></td>
      </tr>
   </table>
</body>

struts.xml中

<package name="menu" extends="struts-default">
    <action name="menu_admin_freq" class="org.vhorvath.throttling.web.actions.MenuAdminFrequencyAction">
        <result name="SUCCESS">/jsp/index.jsp</result>
    </action>   
</package>

动作类

public class MenuAdminFrequencyAction extends ParentAction {
    private String page;    
    public String getPage() {
        return page;
    }
    public String execute() {
        page = "/jsp/frequency.jspf";
        return "SUCCESS";
    }
}

Menu.jspf

<table border="0">
   <tr>
      <td><b>Administration</b></td>
   </tr>
   <tr>
      <td align="left"><a href="menu_admin_freq.action">Frequency of ...</a></td>
   </tr>
</table>

答案 2 :(得分:0)

我强烈建议您使用Sitemesh作为模板生成器,非常有用