日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

5-struts2知识补充(常用的struts2的标签,数据回显,防止重复提交)

發(fā)布時(shí)間:2025/3/16 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 5-struts2知识补充(常用的struts2的标签,数据回显,防止重复提交) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

目錄:

  • ognl
  • 常用struts2標(biāo)簽
  • 數(shù)據(jù)回顯
  • 防止數(shù)據(jù)重復(fù)提交
  • ?

    1)ognl:Object Graph Navigation Language

    簡(jiǎn)介:ognl工作在視圖層,可以簡(jiǎn)化數(shù)據(jù)的訪問(wèn)操作。struts2框架用ognl作為默認(rèn)的表達(dá)式語(yǔ)言,用來(lái)從框架的不同區(qū)域用一種同樣的語(yǔ)言來(lái)引用數(shù)據(jù)。與jsp內(nèi)置的EL語(yǔ)言相比,他們都屬于表達(dá)式語(yǔ)言, 但是ognl的功能更加強(qiáng)大,提供了EL不具備的功能。

    ognl常用符號(hào):

    • #:
      • 獲取非根對(duì)象,如OGNL上下文,Action上下文等。
      • 用于過(guò)濾和投影集合,如:person.{?#this.age>50}
      • 在jsp頁(yè)面中創(chuàng)建Map集合 <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <%@ taglib uri="/struts-tags" prefix="s"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head></head><body><%--ognl表達(dá)式:在jsp頁(yè)面中創(chuàng)建List集合 --%><s:iterator value="{'reic','rose','lisa'}" var="name"><s:property value="#name" /><br></s:iterator><hr><%--在jsp頁(yè)面創(chuàng)建Map集合 --%><s:iterator value="#{1:'reic',2:'rose',3:'lisa'}" var="entry">編號(hào):<s:property value="#entry.key"/>--姓名:<s:property value="#entry.value"/><br></s:iterator> </body> </html> tags.jsp
    • %{? } :? 把內(nèi)容引入Ognl運(yùn)行環(huán)境 <%--模擬從action傳入userName的值 --%><s:set var="userName" value="rose" scope="request"></s:set><%--jsp頁(yè)面獲取userName的值 --%><s:textfield name="username" value="#request.userName"></s:textfield>

      直接這么寫(xiě),jsp頁(yè)面不會(huì)把textfield中的“#request.userName”當(dāng)作ognl表達(dá)式,會(huì)直接在jsp頁(yè)面中顯示為#request.userName,如下所示

      <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <%@ taglib uri="/struts-tags" prefix="s"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head></head><body><s:iterator value="{'rose','lisa','jack'}" var="name"><s:property value="#name"/></s:iterator><hr><%--模擬從action傳入userName的值, value值要寫(xiě)ognl表達(dá)式 --%><s:set var="userName" value="#request.name"></s:set><%--jsp頁(yè)面獲取userName的值 --%><s:textfield name="username" value="%{#request.userName}"></s:textfield></body> </html> tags.jsp
    • $:
      • 在國(guó)際化資源文件中,引用ognl表達(dá)式。
      • 在struts2的配置文件中,引用ognl表達(dá)式。

    ?

    ?

    常用struts2標(biāo)簽:?

    常用的邏輯標(biāo)簽:參考文檔

    • <s:component>標(biāo)簽:當(dāng)需要多次使用同一段代碼時(shí),就可以考慮使用改標(biāo)簽將重復(fù)代碼定義為一個(gè)自定義組件。 <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <%@ taglib uri="/struts-tags" prefix="s"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> </head> <body><s:form><s:component template="TemplateComponent.jsp"><s:param name="interestlist"></s:param><s:param name="booklist" value="{'Java', 'Python'}"></s:param></s:component></s:form> </body> </html> index.jsp <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <%@ taglib uri="/struts-tags" prefix="s"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head></head><body><s:checkboxlist name="interestlist" label="你的興趣愛(ài)好" list="{'Sing', 'Programmer'}"></s:checkboxlist><s:select list="parameters.booklist" labelposition="left" label="你喜歡的書(shū)"></s:select> </body> </html> TemplateComponent.jsp

      ***注意:TemplateComponent.jsp必須放在WebRoot/template/xhtml文件夾下。

    • property標(biāo)簽:用于輸出指定值。輸出value指定的值。
    • set:用于將某個(gè)值放入指定范圍
    • push標(biāo)簽:將對(duì)象存入棧頂,不能放入其他范圍,當(dāng)標(biāo)簽結(jié)束,會(huì)從棧頂刪除
    • bean標(biāo)簽:實(shí)例化一個(gè)符合JavaBean規(guī)范的class,標(biāo)簽體內(nèi)可以包含幾個(gè)param元素,用于調(diào)用set方法給class對(duì)象賦值
    • action標(biāo)簽:通過(guò)指定命名空間和action名稱(chēng),該標(biāo)簽允許在jsp頁(yè)面中直接調(diào)用action。executeResult用于指定action的result是否需要被執(zhí)行(即是否跳轉(zhuǎn)到視圖),默認(rèn)為false。

    • ?iterator:用于對(duì)集合(List,Set, 數(shù)組)進(jìn)行迭代。

      • <s:iterator value="{'java','python'}" var="name"><s:property value="name"/><br></s:iterator>

        ?

    • url標(biāo)簽:該標(biāo)簽用于創(chuàng)建url,可以通過(guò)param標(biāo)簽提供request參數(shù)。 

    ?

    常用UI標(biāo)簽:

    • 表單標(biāo)簽: 表單標(biāo)簽將在html文檔中被呈現(xiàn)為一個(gè)表單元素(代替html代碼,幫助簡(jiǎn)化代碼編寫(xiě))

      (在struts.xml中通過(guò)配置常量可以更改struts2表單標(biāo)簽的默認(rèn)模板:<constant name="struts.ui.theme" value="simple"></constant>, 也可以在jsp頁(yè)面任何struts2標(biāo)簽通過(guò)theme屬性進(jìn)行特定指定。)

    • 非表單標(biāo)簽:用于生成頁(yè)面上的樹(shù),Tab等的標(biāo)簽。
    • Ajax標(biāo)簽

    ?

    ?


    表單數(shù)據(jù)回顯:

    在一些編輯數(shù)據(jù)需求下要用到數(shù)據(jù)回顯(從后臺(tái)取數(shù)據(jù),顯示到頁(yè)面),只需與后臺(tái)變量同名即可,不需要自己寫(xiě)value值

    ?

    防止重復(fù)提交:

    通過(guò)token攔截器實(shí)現(xiàn)防止用戶重復(fù)提交表單,它會(huì)得到頁(yè)面的token值并放入session中,再次刷新時(shí)會(huì)將新一次的token與session中的token比較,如果一致則為重復(fù)提交。

    <?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.5//EN""http://struts.apache.org/dtds/struts-2.5.dtd"><struts><package name="model" extends="struts-default" namespace="/model"><interceptors><interceptor-stack name="myStack"><interceptor-ref name="defaultStack"></interceptor-ref><interceptor-ref name="token"></interceptor-ref></interceptor-stack></interceptors><default-interceptor-ref name="myStack"></default-interceptor-ref><global-allowed-methods>register</global-allowed-methods><action name="user_*" class="c_modelDriver.UserAction" method="{1}"><result>/success.jsp</result><result name="invalid.token">/register.jsp</result></action></package> </struts> struts.xml <formaction="${pageContext.request.contextPath}/model/user_register"method="post"><s:text name="user"></s:text><input type="text" name="name"><s:text name="password"></s:text><input type="password" name="password"><%--在當(dāng)前頁(yè)面生成token --%><s:token></s:token><input type="submit" value='<s:text name="login"></s:text>'></form>

    ?

    轉(zhuǎn)載于:https://www.cnblogs.com/clairexxx/p/10231553.html

    與50位技術(shù)專(zhuān)家面對(duì)面20年技術(shù)見(jiàn)證,附贈(zèng)技術(shù)全景圖

    總結(jié)

    以上是生活随笔為你收集整理的5-struts2知识补充(常用的struts2的标签,数据回显,防止重复提交)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。