Spring Boot 支援多語系(國際化)的網頁顯示,這在國際化的軟體或公司是必需具備的,要達成這個功能只需要簡單的幾個步驟即可以達到。在 Spring Boot 在 Eclipse 的安裝與設定 最後中,有建議安裝 ResourceBundle Editor 的插件,在此也會用到,不妨先安裝於 Eclipse 中。

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

eclipse-git-clone
在參考  Spring Boot 在 Eclipse 的安裝與設定 後,我們於文章中 使用 Eclipse 快速建立 Spring Starter Project 建立了一個網站,並且利用 程式版本控制 on GitHub or Gitee or Bitbucket or GitLab 將專案上傳到了 GitLab ,如何回到了家或是在另一台電腦工作環境時,Eclipse 如何將這個專案導入進來呢? 其實它很簡單,依照下面的步驟就可以了。

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

Struts2 的 logger 是與 log4j2 作整合,同樣是 Apache Project 專案之一。為了瞭解一下與架構 Java 專案時的偵錯機制,所以花了半天的時間來實作。
Maven 對 log4j2 相依性




    <properties>
        <struts2.version>2.3.24.1</struts2.version>
        <log4j2.version>2.2</log4j2.version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>


        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-api</artifactId>
            <version>${log4j2.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-core</artifactId>
            <version>${log4j2.version}</version>
        </dependency>





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

JSP 的 EL 與 JSF 的 EL( 如 JSF EL ( Expression Language ) 的介紹),大致相同,參考 http://penguin1989930.pixnet.net/blog/post/236537248 ,後整理如下:
 
使用EL存取資料
如果想要顯示application隱含物件中的count變數時,可以使用JSP這樣做:
<%=application.getAttribute("count")%>

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

Java 要對 Windows Server AD (Active Directory) 的認證整合,程式碼如下:
 
Step 01: 準備一個共用函數 LDAP_AUTH_AD



    /**
     * AD LDAP 登入認證
     *
     * @param ldap_url
     *            like ldap://912.168.2.1:389/DC=WEI,DC=COM
     * @param account
     * @param password
     * @return String[2] array 0 :0 success,1 fail,2 LDAP connect fail,3 unknow
     *         error array 1 :useremail
     */
    public String[] LDAP_AUTH_AD(String ldap_url, String account, String password) {
        String[] returnStr = new String[2];
        Hashtable<String, String> env = new Hashtable<String, String>();
        env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
        env.put(Context.PROVIDER_URL, ldap_url);
        env.put(Context.SECURITY_AUTHENTICATION, "simple");
        env.put(Context.SECURITY_PRINCIPAL, account);
        env.put(Context.SECURITY_CREDENTIALS, password);
        LdapContext ctx = null;
        try {
            ctx = new InitialLdapContext(env, null);
            returnStr[0] = "0";
            SearchControls searchCtls = new SearchControls();
            searchCtls.setSearchScope(SearchControls.SUBTREE_SCOPE);
            String searchFilter = "(sAMAccountName=" + account + ")";
            String searchBase = "";
            int totalResults = 0;
            String returnedAtts[] = { "mail" };
            searchCtls.setReturningAttributes(returnedAtts);
            try {
                NamingEnumeration answer = ctx.search(searchBase, searchFilter, searchCtls);
                while (answer.hasMoreElements()) {
                    SearchResult sr = (SearchResult) answer.next();
                    Attributes Attrs = sr.getAttributes();
                    if (Attrs != null) {
                        try {
                            for (NamingEnumeration ne = Attrs.getAll(); ne.hasMore();) {
                                Attribute Attr = (Attribute) ne.next();
                                for (NamingEnumeration e = Attr.getAll(); e.hasMore(); totalResults++) {
                                    returnStr[1] = e.next().toString();
                                }
                            }
                        } catch (NamingException e) {
                            System.err.println("Throw Exception : " + e);
                        }
                    }
                }
                loger.debug("Number: " + totalResults);
            } catch (Exception e) {
                loger.error("Can't find Email Address");
            }
            return returnStr;
        } catch (javax.naming.AuthenticationException e) {
            returnStr[0] = "1";
            e.printStackTrace();
            return returnStr;
        } catch (javax.naming.CommunicationException e) {
            // System.out.println("Can't connect to ldap server!");
            returnStr[0] = "2";
            return returnStr;
        } catch (Exception e) {
            System.out.println("error");
            e.printStackTrace();
            returnStr[0] = "3";
            return returnStr;
        } finally {
            if (ctx != null) {
                try {
                    ctx.close();
                } catch (NamingException e) {
                }
            }
        }
    }


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

JSF Expression Language 搭配 JSF 標籤來使用,是用來存取資料物件的一個簡易語言。JSF EL是以#開始,將變數或運算式放置在 { 與 } 之間,例如:#{someBeanName}

變數名稱可以是faces-config.xml中定義的名稱,如果是Bean的話,可以透過使用 '.' 運算子來存取它的屬性,例如:




...
<f:view>
          <h:outputText value="#{userBean.name}"/>
</f:view>
...





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

maven_eclipse_preference.png
Maven 基本概念:
Maven 是類似 ANT 的 Java 佈署工具,Maven 比 ANT 方便的地方是,Maven 會自動去下載專案中必要的 jar 檔。Maven 的 Archetype 主要是會先配置好相關不同專案類型的開發環境,有點類似 template 。

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

來源: Polin Wei
  上一篇 ANT 的基本介紹 我們知道透過 ANT 可以幫我們 Compile Java 所建立的專案,而且可以順便建立 JBoss 所需要的 .war 檔.但是 build.xml 的撰寫卻是一項艱鉅的任務,那有什麼工具可以代勞呢?! 接下來就來介紹如何用 Eclipse 自動建立 ANT 需要的 build.xml
環境:
Java : jdk1.5.0_12 程式放在 D:\Progs\jdk1.5.0_12
Eclipse: Ganymede http://www.eclipse.org/downloads/JBoss: Jboss-4.0.3SP1
  在專案上按滑鼠右鍵,選擇 Export
  
  然後選擇 General -> Ant Buildfiles
 最後選擇你要建立那一個專案的 build.xml ,按下 Finish 即可。

  這樣子就可以自動產生這個專案 Ant 所需要的 build.xml ,當然這個檔案是需要作些許修改的,至於 Ant 的屬性及要修改那些地方,可以視你自己的需要,詳細的說明可以參考ANT 的基本概念與實作。

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


來源: Polin Wei
Ant 的全名是"Another Neat Tool",Ant主要可以幫您自動完成下列的任務:

編譯Java原始碼
建立jar、war、zip檔案
自動測試與生成報告
從 CVS 或 SVN 等管理系統取得原始碼

MIS 發表在 痞客邦 留言(1) 人氣()

1
Blog Stats
⚠️

成人內容提醒

本部落格內容僅限年滿十八歲者瀏覽。
若您未滿十八歲,請立即離開。

已滿十八歲者,亦請勿將內容提供給未成年人士。