gpt4 book ai didi

java - 避免在 Java 自定义标记处理程序中生成 html,第 2 部分

转载 作者:行者123 更新时间:2023-12-01 05:14:26 24 4
gpt4 key购买 nike

我在试图找到 this question 的答案时遇到了困难。关于如何避免在自定义标记处理程序中生成 HTML。像这个提问者一样,我试图避免标记处理程序中出现一堆 println() 语句,并且我真的很想从另一个 .jsp 文件中提取数据。

因此,我尝试了建议的方法:

public int doStartTag() throws JspException {
try {
pageContext.getResponse().flushBuffer();
pageContext.getRequest()
.getRequestDispatcher("/views/tags/loginBlock.jsp")
.include(pageContext.getRequest(), pageContext.getResponse());
} catch (Exception e) { throw new RuntimeException(e); }

return EVAL_BODY_INCLUDE;
}

然而,我得到的是loginBlock.jsp的内容上面标签所在的jsp的输出,而不是像我预期的那样插入标签的位置,甚至调用flushBuffer()

我有一个问题想要找到答案,但今晚 Google 之神对我并不友善:

  1. 如果我需要从标记处理程序插入 HTML block ,这是最好的方法吗?
  2. 在原始答案中,发布者使用了经典的标签处理程序。有没有办法使用简单的标签处理程序(即在扩展 SimpleTagSupport 的类中)来实现这一点?
  3. 尽管上述问题中的提问者接受了答案,但我无法复制成功的结果。我是否遗漏了提问者提到的但我遗漏的内容?
  4. 我是不是在某种程度上偏离了基地,甚至连我自己都没有意识到?我对整个 jsp/servlet 事物有点陌生,并且我不能 100% 确定这种设计模式是我应该使用的。我基本上是在尝试设计调用后端 Java 的 jsp 文件,该后端 Java 执行一些业务逻辑并生成结果 HTML,但就像我上面所说的那样,我不想粘一堆 println() 调用我的 Java 标记处理程序。

感谢您的帮助和/或见解!

最佳答案

我找到了一个答案,但我不知道这是否是最佳答案。我将 buffer="none"插入主 jsp 页面的页面指令中,现在辅助 jsp 页面符合其应有的位置。再说一次,我不知道这是否是最好的答案,因为在我看来,我应该能够缓冲页面。如果有人有更好的建议,我会将这个问题保留几天。

关于java - 避免在 Java 自定义标记处理程序中生成 html,第 2 部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11498406/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com