论坛首页 Java企业应用论坛

关于Struts2 theme的一点认识

浏览 4128 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-10-25  

       之前在做Struts2的一些实例,在排版上遇到了一些问题。请看以下代码

Logon.jsp

===========================================================

<%@ page contentType="text/html;charset=UTF-8" %>
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
    <head>
        <title>
            登录页面
        </title>
    </head>
    <body>
        <s:form action="Logon">
            <s:textfield label="%{getText('username')}" name="username" />
            <s:password label="%{getText('password')}" name="password" />
            <s:submit />
        </s:form>
    </body>
</html>

 

 

配置好其它相关的设置后,打开Logon.jsp,可以看到网页上输出了以下的HTML代码

<html>
    <head>
        <title>
            登录页面
        </title>
    </head>
    <body>
        <form id="Logon" name="Logon" onsubmit="return true;" action="/aidress/Logon.action" method="post">
            <table class="wwFormTable">
                <tr errorFor="Logon_username">
                    <td align="center" valign="top" colspan="2">
                        <span class="errorMessage">
                            User Name is required.
                        </span>
                     </td>
                </tr>
                <tr>
                    <td class="tdLabel">
                        <label for="Logon_username" class="errorLabel">
                            User Name:
                        </label>
                    </td>
                    <td>
                        <input type="text" name="username" value="" id="Logon_username"/>
                    </td>
                </tr>
                <tr errorFor="Logon_password">
                    <td align="center" valign="top" colspan="2">
                        <span class="errorMessage">
                            Password is required.
                        </span>
                    </td>
                </tr>
                <tr>
                    <td class="tdLabel">
                        <label for="Logon_password" class="errorLabel">
                            Password:
                        </label>
                    </td>
                    <td>
                        <input type="password" name="password" id="Logon_password"/>
                    </td>
                </tr>
                <tr>
                    <td colspan="2">
                        <div align="right">
                            <input type="submit" id="Logon_0" value="Submit"/>
                        </div>
                    </td>
                </tr>
            </table>
        </form>
    </body>
</html>

 

 

细心的话就可以注意到,像下面这几行代码是它自动帮你加上去的

<span class="errorMessage">
     Password is required.
</span>

真自动啊,这种事都帮我做了!

可我不想要它啊,我想把它放到别的地方去,或者干脆说,我只想用Struts的action处理机制,不想用struts的默认布局,又或者你想做。。。。。。总之就不要默认的,怎么办?

这就涉及到struts2的theme(主题)了,换不同的主题,可以让struts的代码输出不同的html代码,你也就相应得到不同的布局效果,我就是这么理解theme的,并且换theme也非常简单,这样你可以设定N个不同的主题,每五分钟换一个都行啊(你喜欢的话)

问题一:Struts2有哪些主题?

Struts2提供了三种主题,ajax, simple, xhtml,它默认的是xhtml主题,当然你可以写任意个你自己的主题,我们称之为自定义主题

问题二:Struts2怎么改?

比如现在你想用simple主题,在Struts.xml中,加上下一行代码就可以了

<constant name="struts.ui.theme" value="simple" />

 

如果能用好主题,可以更精确地控制Struts的布局,当然这样的话你得了解很多东西,因为Struts2的主题是由一堆模版构成,它默认的模版是用FreeMarket编写的,文件名后缀是ftl,在它的jar包里的templete目录可以找到任一主题相应的ftl文件,大家有兴趣可以研究一下它是怎么写的,当然它也支持其它的模版,怎么用就自己研究一下吧,我也不太清楚

论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics