close

  除了Log是我的小罩門,前端Web更是我的大罩門。幾天研究下來雖有斬獲,但對Struts2的Web設計概念仍嫌模糊,記錄一些已知問題:

  • 重啟Web Server(如Jetty、Tomcat),在login後submit竟無法post,console訊息紋風不動。而解決方式是不要在LoginAction做Validate,如下:

//@RequiredStringValidator(message = "Please enter password!", trim = true)  這個就別用了。
public void setPassword(String password) {
        this.password = password;
}

  • struts-menu.jar目標遠大,提供多種Menu Tree的格式,可套用Struts 1與Struts 2。但卻有如下的麻煩:
    • velocity.jar需是1.4版,網路有說1.6也行,偏偏就1.5不行。而Maven上放的最新正好是1.5。
  • struts-menu在Struts 2的引用方式:
    • 在web.xml加入如下的Listener
    • <listener>
              <listener-class>net.sf.navigator.menu.MenuContextListener</listener-class>
      </listener>

    • 在WEB-INF下加入menu-config.xml,該檔定義多種Menu Tree格式。而且有自己的css/struts-menu、js/struts-menu和images目錄都要copy到Web Context目錄下,Maven上尚未提供這種archetype。
    • 在jsp裡引用方式如下,可使用struts2的tag library引入所需的css和js檔:
    • <%@ taglib prefix="s" uri="/struts-tags"%>
      <%@ taglib uri="http://struts-menu.sf.net/tag" prefix="menu"%>
      <%@ taglib uri="http://struts-menu.sf.net/tag-el" prefix="menu-el"%>

      以上放在head標籤之後。

        <link href="<s:url value='/css/struts-menu/menuExpandable.css'/>" rel="stylesheet" type="text/css" media="screen" />
        <link href="<s:url value='/css/struts-menu/global.css'/>" rel="stylesheet" type="text/css" media="all" />
        <script src="<s:url value='/js/struts-menu/menuExpandable.js'/>" type="text/javascript"></script>
        <link href="<s:url value='/css/struts-menu/xtree.css'/>" rel="stylesheet" type="text/css" media="all" />
        <script src="<s:url value='/js/struts-menu/xtree.js'/>" type="text/javascript"></script>

    • 以下是google最常用的使用struts-menu用法,有使用core JSTL,所以taglib也記得要引用:
    • <menu:useMenuDisplayer name="Velocity" config="/templates/xtree.html" repository="repository" bundle="" >
              <c:forEach var="menu" items="${repository.topMenus}">
                  <menu-el:displayMenu name="${menu.name}"/>
              </c:forEach> 
      </menu:useMenuDisplayer>

  • struts-menu在struts2-archtype提供的A CSS framework版面劃分格格不入,用在IE、FireFox、Opera和Google Chrome幾乎效果都不同。原本網路建議使用<div>會比<iframe>和<table>效能更高,像<table>必須等表格裡的內容全載入才會一次顯現,但<div>不用。最後我還是用部份table把<div>括進去,否則A CSS framework版面規劃無法預期顯示。

  以前同學有說現代人有六大通病,事隔十數年,不只是反映在生活上,也反映在這種前端開發以及專案管理。哪六大通病?自以為是、不以為然、倚老賣老、老氣橫秋、格格不入、漠不關心。這個格格不入的前端怎麼融合咧?

arrow
arrow
    全站熱搜

    Jemmy 發表在 痞客邦 留言(0) 人氣()