问题标签 [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.

0 投票
2 回答
2959 浏览

java - JspWriter 写入与打印

我正在开发一些自定义 JSP 标记。在我的SimpleTag.doTag()我抓住JspContext并打电话getOut()来获取JspWriter. 写信给时和JspWriter有什么区别?我应该打电话而不是打电话吗?write(String)print(String)

0 投票
2 回答
1530 浏览

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 上运行。

有没有办法避免导致强制转换异常的此类冲突?

0 投票
3 回答
4229 浏览

jsp - 可以在自定义 TagSupport 类中包含一个 jsp,并指定正文应该去哪里?

我想使用自定义 jsp 标签来帮助在我的应用程序中构建菜单。但是,我希望所有实际的 HTML 都存在于 JSP 文件中,而不是 Java 类中。

所以,假设我有一个这样的标签:

然后我可能有我的Menu标签的类,如下所示:

我的menu.jsp文件是菜单本身的包装器,可能如下所示:

我想要做的是将我的mytags:Menu标签正文(它将为实际菜单项生成 HTML)放入menu.jsp开始和结束标签之间的 , 中。我知道我可以将它分成两个不同的 jsp 文件,一个用于开始标记,一个用于结束标记,但这似乎很草率。

是否有可能做到这一点?

谢谢!

0 投票
1 回答
1587 浏览

jsp - 如何将 EL 表达式作为嵌套 jsp 2.0 标记中的参数?

我想做这样的事情来调用 JSP 2.0 标记:

其中 Stringsdefjkl在 jsp 文件中定义较早。假设我的标签文件如下所示:

foo.tag

bar.tag

我希望输出看起来像这样:

(假设变量def和分别在调用 JSP 文件jkl中初始化为defjkl。)

外部标签的属性很好(<div class="def">),但内部标签失败。

这可能吗?我收到 jkl 无法解决的错误。

0 投票
3 回答
6826 浏览

java - java.lang.AbstractMethodError: javax.servlet.jsp.PageContext.getELContext()Ljavax/el/ELContext;

我正在尝试设置一个我将在自定义 JSP 标记中引用的变量,所以我的 JSP 中有这样的内容:

但是,当 JSP 运行时出现此错误:

我正在运行带有 JSTL 1.2 的 Tomcat 5.5 和 Java 1.5。

我在这里做错了吗?

谢谢!

0 投票
1 回答
729 浏览

unit-testing - 单元测试 jsp 2.0 .tag 文件

人们如何测试 jsp 2.0 标签?具有 .tag 扩展名的那些基本上是 jsp 文件,对传递参数有一些额外的支持。

0 投票
1 回答
158 浏览

authentication - 窗户认证

使用 JSP 页面我得到用户名和密码。如何在活动目录中检查它。请举一些代码的例子。

0 投票
6 回答
7734 浏览

jsp - JSP 标记生命周期

我刚刚在我的代码中引入了一个错误,因为我似乎误解了 jsp 标签的生命周期。

在出现错误之前,标签的工作方式是这样的:我将一些集合作为属性传递给标签,并将其显示为表格。集合从控制器传递到 JSP。

错误之后:我删除了设置集合的属性。相反,在标签中我检查集合是否为空,然后从请求中按名称获取它(使用命名约定)。

出乎我意料的是:集合最初设置在标签中之后,在后续执行中它永远不会变为 null!它仍然被定义为 TLD 中的非必需属性。

希望标签在执行之间不会保留以前的值。

0 投票
1 回答
1922 浏览

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

我个人认为第一种情况更有意义,但此代码是作为内部工作的示例,而不是最佳实践。
在任何情况下,我仍然希望该示例能够编译/运行。当它没有时,我相当惊讶。

0 投票
3 回答
2036 浏览

websphere - 强制编译 .tag 文件

如何强制 Websphere 编译我的 .tag 文件?

清理项目、发布、重新启动服务器、添加和删除项目都没有帮助 - 标记文件的 .class 文件没有被重新编译。

如果我删除 .class 文件,我会收到一个错误,指出该类丢失,但它不会重新编译