以selectResnodes標簽為例,完整走通Struts 1.x自定義標簽從定義到運行的7個步驟。
Test.jsp),引入標簽庫前綴slotnode。WEB-INF/TestTag.tld):聲明selectResnodes標簽、標簽類myWeb.taglib.SelectTag、三個屬性(id、nodeslist、scope)。AbstractResAction利用反射將actionType參數映射到對應方法;QueryNodesAction查詢數據庫獲取ArrayList<ResnodesVO>放入request屬性resnodesList。SelectTag):doStartTag()通過RequestUtils.lookup從指定scope獲取nodeslist,遍歷輸出<select><option> HTML。使用JspWriter直接寫響應。struts-config.xml:映射/queryResnodes到QueryNodesAction,轉發Test.jsp。<slotnode:selectResnodes id="nodelist" nodeslist="resnodesList" scope="request" />,屬性名需與Action中setAttribute一致。https://localhost:8080/LearnTag/queryResnodes.do?actionType=showNodesList查看渲染結果。request.setAttribute→標簽RequestUtils.lookup取數→JspWriter生成HTML→頁面顯示。<name>、JSP標簽名、Action屬性名、標簽類屬性名必須完全對應。doStartTag返回SKIP_BODY(無標簽體)或EVAL_BODY_INCLUDE。