@Override
public int doStartTag() throws JspException {
// 在标签开始处出发该方法
HttpServletRequest request = (HttpServletRequest) pageContext.getRequest();
SSOToken token = SSOHelper.getSSOToken(request);
// 如果 token 或者 name 为空
if (token != null && this.getName() != null && !"".equals(this.getName().trim())) {
boolean result = SSOConfig.getInstance().getAuthorization().isPermitted(token, this.getName());
if (result) {
// 权限验证通过
// 返回此则执行标签body中内容,SKIP_BODY则不执行
return BodyTagSupport.EVAL_BODY_INCLUDE;
}
}
return BodyTagSupport.SKIP_BODY;
}
java类javax.servlet.jsp.tagext.BodyTagSupport的实例源码
HasPermissionTag.java 文件源码
项目:kisso
阅读 28
收藏 0
点赞 0
评论 0
ConfigTag.java 文件源码
项目:nyla
阅读 30
收藏 0
点赞 0
评论 0
/**
* Write a configuration property indicated in the tag id
*/
public int doStartTag()
throws JspException
{
try
{
String propName = this.getId();
Debugger.println(this,"looking for config property id "+propName);
this.pageContext.getOut().write(Config.getProperty(this.getId(),defaultValue));
}
catch (IOException e)
{
Debugger.printError(e);
}
return BodyTagSupport.SKIP_BODY;
}
ConfigChannelTag.java 文件源码
项目:spacewalk
阅读 38
收藏 0
点赞 0
评论 0
/**
* {@inheritDoc}
*/
public int doEndTag() throws JspException {
StringBuilder result = new StringBuilder();
if (nolink || id == null) {
result.append(writeIcon());
result.append(name);
}
else {
result.append("<a href=\"" +
ConfigChannelTag.makeConfigChannelUrl(id) + "\">");
result.append(writeIcon());
result.append(StringEscapeUtils.escapeXml(name) + "</a>");
}
JspWriter writer = pageContext.getOut();
try {
writer.write(result.toString());
}
catch (IOException e) {
throw new JspException(e);
}
return BodyTagSupport.SKIP_BODY;
}
ColumnTag.java 文件源码
项目:spacewalk
阅读 42
收藏 0
点赞 0
评论 0
/**
* ${@inheritDoc}
*/
public int doEndTag() throws JspException {
if (sortable && attributeName == null && sortAttribute == null) {
throw new JspException("Sortable columns must use either attr or sortAttr");
}
checkForBoundsAndAttrs();
ListCommand command = ListTagUtil.getCurrentCommand(this, pageContext);
if (command.equals(ListCommand.RENDER)) {
ListTagUtil.write(pageContext, "</td>");
}
else if (command.equals(ListCommand.ENUMERATE) &&
!StringUtils.isBlank(filterAttr)) {
setupColumnFilter();
}
return BodyTagSupport.EVAL_PAGE;
}
SelectableColumnTag.java 文件源码
项目:spacewalk
阅读 33
收藏 0
点赞 0
评论 0
/**
* {@inheritDoc}
*/
@Override
public int doStartTag() throws JspException {
ListCommand command = ListTagUtil.getCurrentCommand(this, pageContext);
ListTag parent = (ListTag) BodyTagSupport.findAncestorWithClass(this,
ListTag.class);
listName = parent.getUniqueName();
int retval = BodyTagSupport.SKIP_BODY;
setupRhnSet();
if (command.equals(ListCommand.ENUMERATE)) {
parent.addColumn();
retval = BodyTagSupport.EVAL_PAGE;
}
else if (command.equals(ListCommand.COL_HEADER)) {
renderHeader(parent);
retval = BodyTagSupport.EVAL_PAGE;
}
else if (command.equals(ListCommand.RENDER)) {
renderCheckbox();
}
return retval;
}
SelectableColumnTag.java 文件源码
项目:spacewalk
阅读 47
收藏 0
点赞 0
评论 0
/**
* renders
* //onclick="checkbox_clicked(this, '$rhnSet')"
*
*/
private String getOnClickScript(String funcName, String boxName) {
Object current = getCurrent();
Object parent = getParentObject();
String childIds = "[]";
String memberIds = "[]";
String parentId = "";
ListTag parentTag = (ListTag)
BodyTagSupport.findAncestorWithClass(this, ListTag.class);
if (RhnListTagFunctions.isExpandable(current)) {
childIds = getChildIds(current);
}
else {
parentId = getParentId(current, parent);
memberIds = getMemberIds(current, parent);
}
return String.format(CHECKBOX_CLICKED_SCRIPT, funcName, boxName,
rhnSet, makeSelectAllCheckboxId(listName),
childIds, memberIds, parentId,
parentTag.isParentAnElement());
}
SelectableColumnTag.java 文件源码
项目:spacewalk
阅读 43
收藏 0
点赞 0
评论 0
private void renderHiddenItem(String listId, String value) throws JspException {
ListTagUtil.write(pageContext, "<input type=\"hidden\" ");
ListTagUtil.write(pageContext, "id=\"");
ListTagUtil.write(pageContext, "list_items_" + listName + "_" + listId);
String pageItems = ListTagUtil.makePageItemsName(listName);
ListTag parent = (ListTag)
BodyTagSupport.findAncestorWithClass(this, ListTag.class);
if (!parent.isParentAnElement() &&
RhnListTagFunctions.isExpandable(getCurrent())) {
pageItems = "parent_" + pageItems;
}
ListTagUtil.write(pageContext, "\" name=\"" + pageItems + "\" ");
ListTagUtil.write(pageContext, "value=\"");
ListTagUtil.write(pageContext, value);
ListTagUtil.write(pageContext, "\" />\n");
}
SelectableColumnTag.java 文件源码
项目:spacewalk
阅读 32
收藏 0
点赞 0
评论 0
private String getIgnorableParentIds() {
ListTag parent = (ListTag)
BodyTagSupport.findAncestorWithClass(this, ListTag.class);
if (!parent.isParentAnElement()) {
StringBuilder buf = new StringBuilder();
for (Object current : parent.getPageData()) {
if (RhnListTagFunctions.isExpandable(current)) {
if (buf.length() > 0) {
buf.append(",");
}
buf.append("'");
buf.append(makeCheckboxId(listName,
ListTagHelper.getObjectId(current)));
buf.append("'");
}
}
buf.insert(0, "[");
buf.append("]");
return buf.toString();
}
return "[]";
}
ListTag.java 文件源码
项目:spacewalk
阅读 38
收藏 0
点赞 0
评论 0
private ListDecorator getDecorator(String decName) throws JspException {
if (decName != null) {
ClassLoader cl = Thread.currentThread().getContextClassLoader();
try {
if (decName.indexOf('.') == -1) {
decName = "com.redhat.rhn.frontend.taglibs.list.decorators." +
decName;
}
ListDecorator dec = (ListDecorator) cl.loadClass(decName)
.newInstance();
ListSetTag parent = (ListSetTag) BodyTagSupport
.findAncestorWithClass(this, ListSetTag.class);
dec.setEnvironment(pageContext, parent, getUniqueName());
return dec;
}
catch (Exception e) {
String msg = "Exception while adding Decorator [" + decName + "]";
throw new JspException(msg, e);
}
}
return null;
}
ListTag.java 文件源码
项目:spacewalk
阅读 39
收藏 0
点赞 0
评论 0
/**
* ${@inheritDoc}
*/
@Override
public int doEndTag() throws JspException {
// print the hidden fields after the list widget is printed
// but before the form of the listset is closed.
ListTagUtil.write(pageContext, String.format(HIDDEN_TEXT,
ListTagUtil.makeParentIsAnElementLabel(getUniqueName()),
parentIsElement));
// here decorators should insert other e.g hidden input fields
for (ListDecorator dec : getDecorators()) {
dec.afterList();
}
ListTagUtil.write(pageContext, "<!-- END " + getUniqueName() + " -->");
release();
return BodyTagSupport.EVAL_PAGE;
}
ListTag.java 文件源码
项目:spacewalk
阅读 34
收藏 0
点赞 0
评论 0
private int doAfterBodyRenderBeforeData() throws JspException {
ListTagUtil.write(pageContext, "</tr>");
ListTagUtil.write(pageContext, "</thead>");
ListTagUtil.setCurrentCommand(pageContext, getUniqueName(),
ListCommand.BEFORE_RENDER);
if (manip.isListEmpty()) {
renderEmptyList();
ListTagUtil.write(pageContext, "</table>");
// close panel
ListTagUtil.write(pageContext, "</div>");
// close list
ListTagUtil.write(pageContext, "</div>");
return BodyTagSupport.SKIP_BODY;
}
ListTagUtil.write(pageContext, "<tbody>");
// render first row. The rest will be rendered in subsequent
// calls to doAfterBody
return doAfterBodyRenderData();
}
ListTag.java 文件源码
项目:spacewalk
阅读 38
收藏 0
点赞 0
评论 0
/**
* ${@inheritDoc}
*/
@Override
public int doAfterBody() throws JspException {
int retval = BodyTagSupport.EVAL_BODY_AGAIN;
ListCommand nextCmd = getNextCommand();
switch (nextCmd) {
case TBL_HEADING: doAfterBodyRenderListBegin(); break;
case TBL_ADDONS: doAfterBodyRenderTopAddons(); break;
case COL_HEADER: doAfterBodyRenderColHeaders(); break;
case BEFORE_RENDER: retval = doAfterBodyRenderBeforeData(); break;
case RENDER: retval = doAfterBodyRenderData(); break;
case AFTER_RENDER: retval = doAfterBodyRenderAfterData(); break;
case TBL_FOOTER: retval = doAfterBodyRenderFooterAddons(); break;
default: break;
}
return retval;
}
RadioColumnTag.java 文件源码
项目:spacewalk
阅读 37
收藏 0
点赞 0
评论 0
/**
* {@inheritDoc}
*/
@Override
public int doStartTag() throws JspException {
ListCommand command = ListTagUtil.getCurrentCommand(this, pageContext);
ListTag parent = (ListTag) BodyTagSupport.findAncestorWithClass(this,
ListTag.class);
listName = parent.getUniqueName();
int retval = BodyTagSupport.SKIP_BODY;
if (command.equals(ListCommand.ENUMERATE)) {
parent.addColumn();
renderHiddenField();
retval = BodyTagSupport.EVAL_PAGE;
}
else if (command.equals(ListCommand.COL_HEADER)) {
renderHeader(parent);
retval = BodyTagSupport.EVAL_PAGE;
}
else if (command.equals(ListCommand.RENDER)) {
render(valueExpr);
}
return retval;
}
DMWebFragmentBodyTagLibrary.java 文件源码
项目:DMWeb
阅读 43
收藏 0
点赞 0
评论 0
@Override
public int doEndTag() throws JspException
{
try
{
BodyContent bc = this.getBodyContent();
String body = bc.getString();
JspWriter out = this.pageContext.getOut();
out.println("<body>");
out.print(body);
JSONStructure jsonStructure = new JSONStructure(0);
this.marshaller.marschall(this.serializationData, jsonStructure);
String json = jsonStructure.toString();
out.println("<script>\nvar bz_davide_dm_widgets = " + json + "</script>");
out.println("</body>");
return BodyTagSupport.EVAL_PAGE;
}
catch (Exception exxx)
{
throw new JspException(exxx);
}
}
CacheTagTest.java 文件源码
项目:ehcachetag
阅读 36
收藏 0
点赞 0
评论 0
/**
* Key is null, check that we return EVAL_BODY_INCLUDE.
*
* @throws JspException
*/
@Test
public void testDoStartTag_null_key() throws JspException {
// given
testSubject.setKey(null);
testSubject.setCache("mycache");
// when
int actualResult = testSubject.doStartTag();
// then
Assert.assertEquals(BodyTagSupport.EVAL_BODY_INCLUDE, actualResult);
// verify cleanup
Assert.assertNull(testSubject.getCache());
verifyCleanup();
}
CacheTagTest.java 文件源码
项目:ehcachetag
阅读 41
收藏 0
点赞 0
评论 0
/**
* Cache is null, check that we return EVAL_BODY_INCLUDE.
*
* @throws JspException
*/
@Test
public void testDoStartTag_null_cache() throws JspException {
// given
testSubject.setKey("mykey");
testSubject.setCache(null);
testSubject.setModifiers("hi");
// when
int actualResult = testSubject.doStartTag();
// then
Assert.assertEquals(BodyTagSupport.EVAL_BODY_INCLUDE, actualResult);
verifyCleanup();
}
CacheTagTest.java 文件源码
项目:ehcachetag
阅读 38
收藏 0
点赞 0
评论 0
/**
* Cache is null, check that we return EVAL_BODY_INCLUDE.
* Also improves the code coverage by added a HttpServletRequest.
*
* @throws JspException
*/
@Test
public void testDoStartTag_null_cache_httpservletrequest() throws JspException {
// given
testSubject.setKey("mykey");
testSubject.setCache(null);
testSubject.setModifiers("hi");
HttpServletRequest servletRequest = Mockito.mock(HttpServletRequest.class);
Mockito.when(servletRequest.getRequestURI()).thenReturn("http://example.com/testpage.jsp");
Mockito.when(pageContext.getRequest()).thenReturn(servletRequest);
// when
int actualResult = testSubject.doStartTag();
// then
Assert.assertEquals(BodyTagSupport.EVAL_BODY_INCLUDE, actualResult);
verifyCleanup();
}
CacheTagTest.java 文件源码
项目:ehcachetag
阅读 35
收藏 0
点赞 0
评论 0
/**
* Cache not found.
*
* @throws JspException
*/
@Test
public void testDoStartTag_cache_not_found() throws JspException {
// given
testSubject.setKey("mykey");
testSubject.setCache("mycache");
testSubject.setModifiers("hi");
Mockito.when(cacheManager.getEhcache(Mockito.anyString())).thenReturn(null);
// when
int actualResult = testSubject.doStartTag();
// then
Assert.assertEquals(BodyTagSupport.EVAL_BODY_INCLUDE, actualResult);
Mockito.verify(cacheManager).getEhcache("mycache");
verifyCleanup();
}
CacheTagTest.java 文件源码
项目:ehcachetag
阅读 38
收藏 0
点赞 0
评论 0
/**
* Cache found, but the value with the key is not there.
*
* @throws JspException
*/
@Test
public void testDoStartTag_no_cached_value() throws JspException {
// given
testSubject.setKey("mykey");
testSubject.setCache("mycache");
Mockito.when(cacheManager.getEhcache(Mockito.anyString())).thenReturn(ehcache);
// when
int actualResult = testSubject.doStartTag();
// then
Assert.assertEquals(BodyTagSupport.EVAL_BODY_BUFFERED, actualResult);
Assert.assertEquals("mycache", testSubject.getCache());
Mockito.verifyNoMoreInteractions(jspWriter);
}
CacheTagTest.java 文件源码
项目:ehcachetag
阅读 34
收藏 0
点赞 0
评论 0
/**
* We found a cached value
*
* @throws JspException
* @throws IOException
*/
@Test
public void testDoStartTag_cached_value() throws JspException, IOException {
// given
ensureCacheContent("mycache", "mykey", "cached_content");
testSubject.setKey("mykey");
testSubject.setCache("mycache");
// when
int actualResult = testSubject.doStartTag();
// then
Assert.assertEquals(BodyTagSupport.SKIP_BODY, actualResult);
Mockito.verify(pageContext).getOut();
Mockito.verify(jspWriter).write("cached_content");
Mockito.verifyNoMoreInteractions(jspWriter);
}
CacheTagTest.java 文件源码
项目:ehcachetag
阅读 51
收藏 0
点赞 0
评论 0
@Test
public void testDoStartTag_null_cache_key() {
// given
// when
int actualResult = -1;
try {
actualResult = testSubject.doStartTag();
} catch (JspException e) {
Assert.fail(e.getMessage());
}
// then
Assert.assertEquals(BodyTagSupport.EVAL_BODY_INCLUDE, actualResult);
Mockito.verify(pageContext).findAttribute(EHCacheTagConstants.MODIFIER_FACTORY_ATTRIBUTE);
Mockito.verifyNoMoreInteractions(jspWriter, pageContext);
}
CacheTagTest.java 文件源码
项目:ehcachetag
阅读 44
收藏 0
点赞 0
评论 0
/**
* Test doStartTag where the first modifier throws an exception
* @throws JspException
*/
@Test
public void doStartTag_modifier_not_found() throws JspException {
// given
testSubject.setKey("testkey");
CacheTagModifier modifier = Mockito.mock(CacheTagModifier.class);
Mockito.doThrow(new RuntimeException()).when(modifier).beforeLookup(Mockito.any(CacheTag.class), Mockito.any(JspContext.class));
Mockito.when(cacheTagModifierFactory.getCacheTagModifier(Mockito.anyString())).thenReturn(modifier);
// when
int actualResult = testSubject.doStartTag();
// then
Assert.assertEquals(BodyTagSupport.EVAL_BODY_INCLUDE, actualResult);
// cleanup
Assert.assertNull(testSubject.getKey());
Assert.assertNull(testSubject.getCache());
Assert.assertEquals("", testSubject.getModifiers());
}
CacheTagTest.java 文件源码
项目:ehcachetag
阅读 31
收藏 0
点赞 0
评论 0
/**
* Test doStartTag where the first modifier throws an exception
* @throws JspException
*/
@Test
public void doStartTag_modifier_exception() throws JspException {
// given
testSubject.setKey("testkey");
CacheTagModifier modifier = Mockito.mock(CacheTagModifier.class);
Mockito.doThrow(new RuntimeException()).when(modifier).beforeLookup(Mockito.any(CacheTag.class), Mockito.any(JspContext.class));
Mockito.when(cacheTagModifierFactory.getCacheTagModifier(Mockito.anyString())).thenReturn(modifier);
// when
int actualResult = testSubject.doStartTag();
// then
Assert.assertEquals(BodyTagSupport.EVAL_BODY_INCLUDE, actualResult);
verifyCleanup();
}
JSPPageExecuter.java 文件源码
项目:ontopia
阅读 36
收藏 0
点赞 0
评论 0
private void loopTag(TagSupport tag, JSPTreeNodeIF curNode)
throws JspException, IOException {
// loop as long as tag says so
int token;
do {
runTag(tag, curNode);
token = tag.doAfterBody();
} while (token == BodyTagSupport.EVAL_BODY_AGAIN);
if (token != BodyTagSupport.SKIP_BODY)
throw new OntopiaRuntimeException("Internal error: unknown doAfterBody token: " + token);
}
ConfigFileTag.java 文件源码
项目:spacewalk
阅读 36
收藏 0
点赞 0
评论 0
/**
* {@inheritDoc}
*/
@Override
public int doEndTag() throws JspException {
StringBuilder result = new StringBuilder();
if (nolink || id == null) {
result.append(writeIcon());
result.append(StringEscapeUtils.escapeXml(path));
}
else {
String url;
if (revisionId != null) {
url = makeConfigFileRevisionUrl(id, revisionId);
}
else {
url = makeConfigFileUrl(id);
}
result.append("<a href=\"" + url + "\">");
result.append(writeIcon());
result.append(StringEscapeUtils.escapeXml(path) + "</a>");
}
JspWriter writer = pageContext.getOut();
try {
writer.write(result.toString());
}
catch (IOException e) {
throw new JspException(e);
}
return BodyTagSupport.SKIP_BODY;
}
ColumnTag.java 文件源码
项目:spacewalk
阅读 41
收藏 0
点赞 0
评论 0
/**
* ${@inheritDoc}
*/
public int doStartTag() throws JspException {
ListCommand command = ListTagUtil.getCurrentCommand(this, pageContext);
ListTag parent = (ListTag) BodyTagSupport.findAncestorWithClass(this,
ListTag.class);
int retval = BodyTagSupport.SKIP_BODY;
currentSortDir = fetchSortDir();
if (command.equals(ListCommand.ENUMERATE)) {
parent.addColumn();
retval = BodyTagSupport.EVAL_PAGE;
if (isSortable()) {
parent.setSortable(true);
}
}
else if (command.equals(ListCommand.COL_HEADER)) {
renderHeader();
retval = BodyTagSupport.EVAL_PAGE;
}
else if (command.equals(ListCommand.RENDER)) {
if (isBound) {
renderBound();
retval = BodyTagSupport.SKIP_BODY;
}
else {
renderUnbound();
retval = BodyTagSupport.EVAL_BODY_INCLUDE;
}
}
return retval;
}
ColumnTag.java 文件源码
项目:spacewalk
阅读 48
收藏 0
点赞 0
评论 0
/**
* Gets the active sort direction for the column, or empty string if the list is not
* sorted on this column.
*
* @return Active sort direction for the column
*/
private String fetchSortDir() {
String sortName = getSortName();
ListTag parent = (ListTag) BodyTagSupport.findAncestorWithClass(this,
ListTag.class);
if (isAlphaBarSelected() && parent.getAlphaBarColumn().equals(sortName)) {
return RequestContext.SORT_ASC;
}
String requestLabel = pageContext.getRequest().
getParameter(ListTagUtil.makeSortByLabel(getListName()));
if (requestLabel != null && !requestLabel.equals(sortName)) {
return "";
}
String sortDirectionKey = ListTagUtil.makeSortDirLabel(getListName());
String sortDir = pageContext.getRequest().getParameter(sortDirectionKey);
if (StringUtils.isBlank(sortDir)) {
sortDir = defaultSortDir;
}
return StringUtils.isEmpty(sortDir) ? "" : sortDir;
}
ColumnTag.java 文件源码
项目:spacewalk
阅读 31
收藏 0
点赞 0
评论 0
protected void renderUnbound() throws JspException {
ListTag parent = (ListTag)
BodyTagSupport.findAncestorWithClass(this, ListTag.class);
if (attributeName != null) {
Object bean = parent.getCurrentObject();
String value = ListTagUtil.getBeanValue(bean, attributeName);
pageContext.setAttribute("beanValue", value, PageContext.PAGE_SCOPE);
}
writeStartingTd();
}
ColumnTag.java 文件源码
项目:spacewalk
阅读 34
收藏 0
点赞 0
评论 0
protected void renderBound() throws JspException {
ListTag parent = (ListTag)
BodyTagSupport.findAncestorWithClass(this, ListTag.class);
Object bean = parent.getCurrentObject();
writeStartingTd();
ListTagUtil.write(pageContext, ListTagUtil.
getBeanValue(bean, attributeName));
}
ColumnTag.java 文件源码
项目:spacewalk
阅读 41
收藏 0
点赞 0
评论 0
private void setupColumnFilter() throws JspException {
ListTag parent = (ListTag)
BodyTagSupport.findAncestorWithClass(this, ListTag.class);
String key = headerKey;
if (!StringUtils.isBlank(filterMessage)) {
key = filterMessage;
}
ColumnFilter f = new ColumnFilter(key, filterAttr);
parent.setColumnFilter(f);
}