发布时间:2025-12-09 11:58:29 浏览次数:2
import javax.servlet.jsp.tagext.TagSupport; //导入依赖的package包/类@Overridepublic String renderTag(TagSupport tag, PageContext pageContext, String body) throws Exception {StringWriter strWriter = new StringWriter();HttpServletResponse response = mock(HttpServletResponse.class);when(response.getWriter()).thenReturn(new PrintWriter(strWriter, true));if (!mockingDetails(pageContext).isSpy()) {pageContext = spy(pageContext);}JspWriter jspWriter = new JspWriterImpl(response);doReturn(jspWriter).when(pageContext).getOut();tag.setPageContext(pageContext);if (Tag.EVAL_BODY_INCLUDE == tag.doStartTag()) {jspWriter.flush();strWriter.write(body);}jspWriter.flush();tag.doEndTag();jspWriter.flush();tag.release();return strWriter.toString();} import javax.servlet.jsp.tagext.TagSupport; //导入依赖的package包/类public void doInitBody() throws JspException { //Test for doInitBody method. if ( "doInitBody".equalsIgnoreCase ( this.getAtt1() ) ) { TestString += this.getAtt1(); } // Test for getParent method in TagSupport if ( "getParent".equalsIgnoreCase ( this.getAtt2() ) ) { TagSupport ts = new TagSupport(); setParent( this ); Tag tt = getParent(); if ( tt == this ) { TestString = TestString + "Pass"; } else { TestString = TestString + "Fails"; } } } import javax.servlet.jsp.tagext.TagSupport; //导入依赖的package包/类@SuppressWarnings("unchecked")private P getParentTag()throws JspException{try {AbstractBusinessObjectTag<T> parentTag = null;for(parentTag = (AbstractBusinessObjectTag)TagSupport.findAncestorWithClass(this, AbstractBusinessObjectTag.class);parentTag != null && ! businessObjectType.equals(parentTag.getBusinessObjectType());parentTag = (AbstractBusinessObjectTag)TagSupport.findAncestorWithClass(parentTag, AbstractBusinessObjectTag.class) );return (P)parentTag; } catch (ClassCastException e) {throw new JspException("Parent tag of this '" + this.getClass().getName() + "' must present business object of type '" + getBusinessObjectType().getName() + "'."); }} import javax.servlet.jsp.tagext.TagSupport; //导入依赖的package包/类/** * * @see javax.servlet.jsp.tagext.TagSupport#doEndTag() */public int doEndTag() throws JspException{ try { section = null; pageContext.removeAttribute("counter"); pageContext.removeAttribute("sectionCounter"); pageContext.getOut().write("</table>"); return TagSupport.EVAL_PAGE; } catch(Exception e) { throw new JspException(Debugger.stackTrace(e)); }} import javax.servlet.jsp.tagext.TagSupport; //导入依赖的package包/类@Overridepublic int doStartTag() throws JspException { StringTokenizer tokenizer = new StringTokenizer(privileges, ";");String[] privs = new String[tokenizer.countTokens()];for(int i=0; tokenizer.hasMoreTokens(); i++) {privs[i] = tokenizer.nextToken();}if(ownedObject instanceof UserOwnable) {showControl = editMode && authorityManager.hasAtLeastOnePrivilege( (UserOwnable) ownedObject, privs);}else if(ownedObject instanceof AgencyOwnable) {showControl = editMode && authorityManager.hasAtLeastOnePrivilege( (AgencyOwnable) ownedObject, privs);}else {showControl = false;}// release the object (usually its a ti) from the tag to prevent a memory leak (Tags are pooled) ownedObject = null;return TagSupport.EVAL_BODY_INCLUDE;}