问题标签 [jsp-tags]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - JspWriter 写入与打印
我正在开发一些自定义 JSP 标记。在我的SimpleTag.doTag()
我抓住JspContext
并打电话getOut()
来获取JspWriter
. 写信给时和JspWriter
有什么区别?我应该打电话而不是打电话吗?write(String)
print(String)
jboss - 关于 OSGI 问题的 ATG 标签库
我们目前正在创建一个需要在 SLING/OSGI 上使用 ATG 标签库的应用程序,我们已经创建了一个包含这些标签库的包并上传了它,当然这些标签库调用 ATG 类,所以我们使用 sling.properties 文件将它们包含在 bootdelegation 中.
sling.bootdelegation.simple=atg.nucleus sling.bootdelegation.class.atg.nucleus.Nucleus=atg.appassembly,\atg.appassembly.ant,\atg.appassembly.progress,\atg.appassembly.util,\ ... ETC...
首先我们得到这个错误:
org.apache.sling.api.scripting.ScriptEvaluationException: atg/taglib/dspjsp/ImportBeanTag at org.apache.sling.scripting.core.impl.DefaultSlingScript.call(DefaultSlingScript.java:163) at org.apache.sling.scripting .core.impl.DefaultSlingScript.eval(DefaultSlingScript.java:107) 在 org.apache.sling.scripting.core.impl.DefaultSlingScript.service(DefaultSlingScript.java:226) 在 org.apache.sling.engine.impl.request .RequestData.service(RequestData.java:465)
……
.... 引起:java.lang.NoClassDefFoundError: atg/taglib/dspjsp/ImportBeanTag 在 org.apache.jsp.apps.mygeometrixx.components.contenpage.center_jsp._jspx_meth_dsp_005fimportbean_005f0(center_jsp.java:177) 在 org.apache。 jsp.apps.mygeometrixx.components.contenpage.center_jsp._jspService(center_jsp.java:154) 在 org.apache.sling.scripting.jsp.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) 在 javax.servlet。 http.HttpServlet.service(HttpServlet.java:810) 在
因此,我们将 atg.taglib.dspjsp 添加到要添加到 bootdelegation sling.properties 文件中的包中。
然后我们得到了这个错误:
org.apache.sling.api.scripting.ScriptEvaluationException: atg.taglib.dspjsp.ImportBeanTag at org.apache.sling.scripting.core.impl.DefaultSlingScript.call(DefaultSlingScript.java:163) at org.apache.sling.scripting .core.impl.DefaultSlingScript.eval(DefaultSlingScript.java:107) 在 org.apache.sling.scripting.core.impl.DefaultSlingScript.service(DefaultSlingScript.java:226) 在 org.apache.sling.engine.impl.request .RequestData.service(RequestData.java:465) ...
引起:java.lang.ClassCastException: atg.taglib.dspjsp.ImportBeanTag atg.apache.sling.scripting.jsp.jasper.runtime.TagHandlerPool.get(TagHandlerPool.java:125) at org.apache.jsp.apps。 mygeometrixx.components.contenpage.center_jsp._jspx_meth_dsp_005fimportbean_005f0(center_jsp.java:177) 在 org.apache.jsp.apps.mygeometrixx.components.contenpage.center_jsp._jspService(center_jsp.java:154) 在 org.apache.sling.scripting。 jsp.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
所有这些都在 JBOSS 上运行。
有没有办法避免导致强制转换异常的此类冲突?
jsp - 可以在自定义 TagSupport 类中包含一个 jsp,并指定正文应该去哪里?
我想使用自定义 jsp 标签来帮助在我的应用程序中构建菜单。但是,我希望所有实际的 HTML 都存在于 JSP 文件中,而不是 Java 类中。
所以,假设我有一个这样的标签:
然后我可能有我的Menu
标签的类,如下所示:
我的menu.jsp
文件是菜单本身的包装器,可能如下所示:
我想要做的是将我的mytags:Menu
标签正文(它将为实际菜单项生成 HTML)放入menu.jsp
开始和结束标签之间的 , 中。我知道我可以将它分成两个不同的 jsp 文件,一个用于开始标记,一个用于结束标记,但这似乎很草率。
是否有可能做到这一点?
谢谢!
jsp - 如何将 EL 表达式作为嵌套 jsp 2.0 标记中的参数?
我想做这样的事情来调用 JSP 2.0 标记:
其中 Stringsdef
和jkl
在 jsp 文件中定义较早。假设我的标签文件如下所示:
foo.tag
:
bar.tag
:
我希望输出看起来像这样:
(假设变量def
和分别在调用 JSP 文件jkl
中初始化为def
和jkl
。)
外部标签的属性很好(<div class="def">
),但内部标签失败。
这可能吗?我收到 jkl 无法解决的错误。
java - java.lang.AbstractMethodError: javax.servlet.jsp.PageContext.getELContext()Ljavax/el/ELContext;
我正在尝试设置一个我将在自定义 JSP 标记中引用的变量,所以我的 JSP 中有这样的内容:
但是,当 JSP 运行时出现此错误:
我正在运行带有 JSTL 1.2 的 Tomcat 5.5 和 Java 1.5。
我在这里做错了吗?
谢谢!
unit-testing - 单元测试 jsp 2.0 .tag 文件
人们如何测试 jsp 2.0 标签?具有 .tag 扩展名的那些基本上是 jsp 文件,对传递参数有一些额外的支持。
authentication - 窗户认证
使用 JSP 页面我得到用户名和密码。如何在活动目录中检查它。请举一些代码的例子。
jsp - JSP 标记生命周期
我刚刚在我的代码中引入了一个错误,因为我似乎误解了 jsp 标签的生命周期。
在出现错误之前,标签的工作方式是这样的:我将一些集合作为属性传递给标签,并将其显示为表格。集合从控制器传递到 JSP。
错误之后:我删除了设置集合的属性。相反,在标签中我检查集合是否为空,然后从请求中按名称获取它(使用命名约定)。
出乎我意料的是:集合最初设置在标签中之后,在后续执行中它永远不会变为 null!它仍然被定义为 TLD 中的非必需属性。
我希望标签在执行之间不会保留以前的值。
java - JSP.13.8 示例简单标记处理程序场景不起作用?
这个测试是通过阅读Sun java 论坛上的一个问题来提示的,我想我会尝试一下。JSP2.0 规范部分 JSP.13.8 包含一个“示例简单标记处理程序方案”。我复制并粘贴了代码片段并尝试运行它。
环境:Apache Tomcat 版本 5.5.26 和 6.0.14(均已测试) Java:1.5
我正在测试的代码:Jsp 页面:
和标签文件:
此代码直接从 JSP2.0 规范的 PDF 副本中复制而来。
它也可以作为 JSP-API 的一部分在此处
进行微小更改 - 我将标记文件的名称从 simpletag.tag 更改为 simpleTag.tag 以匹配 JSP 中对它的调用。
我还尝试从规范的 PDF 中复制(根据需要调整引号) - 结果相同。
当我执行该页面时,我最终得到一个标准的 500 错误根本原因:java.lang.ClassCastException: java.io.StringReader org.apache.jsp.tagVariableTest_jsp._jspService(tagVariableTest_jsp.java:62)
生成的 JSP 的第 62 行原来是: var1 = (java.lang.String) _jspx_page_context.findAttribute("var1");
好的,我可以理解 ClassCastException - 它认为 var1 应该是一个字符串,而实际的属性是一个 StringReader。但为什么它是 StringReader?变量是在哪里创建的?它为什么要尝试完成这项任务?
有人可以指出我正确的方向吗?代码/设置有什么问题?这是一个已知的问题?我用谷歌搜索,但似乎找不到任何东西。
谢谢, evnafets
使用分辨率进行编辑:ClassCastException 是由标记中的行引起的:
如前所述, varReader 属性指定将评估结果存储为 StringReader 的属性。该异常是由 Tomcat 生成的代码尝试检索“var1”的值并将其转换为字符串引起的。由于 String 不是 StringReader 因此,它在那时引发了异常。
我不确定编码错误是否是他们应该使用“var”而不是“varReader”属性,或者他们不应该使用任何一个而只是按原样评估它。删除该属性会完全打印出片段,然后是带有“var1”值的正文:
片段模板文本 30. 调用正文:定义 AT_BEGIN 脚本变量的标记正文 30
使属性 var="var1" 执行片段,并将结果存储到 var1。然后使用 var1 的这个新值对主体进行评估,结果是:
调用正文:定义 AT_BEGIN 脚本变量的标记正文片段模板文本 30
我个人认为第一种情况更有意义,但此代码是作为内部工作的示例,而不是最佳实践。
在任何情况下,我仍然希望该示例能够编译/运行。当它没有时,我相当惊讶。
websphere - 强制编译 .tag 文件
如何强制 Websphere 编译我的 .tag 文件?
清理项目、发布、重新启动服务器、添加和删除项目都没有帮助 - 标记文件的 .class 文件没有被重新编译。
如果我删除 .class 文件,我会收到一个错误,指出该类丢失,但它不会重新编译