标签: jspx

我应该使用JSPX而不是JSP吗?

使用JDeveloper,我开始为工作中的项目开发一组网页.由于我当时对JDev了解不多,所以我跑到Oracle去学习一些教程.JDev教程建议使用JSPX而不是JSP,但没有真正解释原因.你在开发JSPX页面吗?你为什么决定这样做?使用JSPX路由的优点/缺点是什么?

jsp jspx

50
推荐指数
5
解决办法
6万
查看次数

使用JSP Documents(JSPX)有条件地在元素上设置属性

在HTML表单中,可以通过在其上定义"disabled"属性来禁用按钮,具有任何值:

<button name="btn1" disabled="disabled">Hello</button>
Run Code Online (Sandbox Code Playgroud)

如果要启用某个按钮,则该属性不应该存在,因为没有定义的值可以将disabled属性设置为启用按钮.

当我想在使用JSP文档(jspx)时启用/禁用按钮时,这会导致我出现问题.由于JSP文档必须是格式良好的XML文档,我无法看到有条件地包含此属性的任何方式,因为以下内容不合法:

<button name="btn1" <%= (isDisabled) ? "disabled" : "" %/> >Hello</button>
Run Code Online (Sandbox Code Playgroud)

虽然我可以使用JSTL if标签复制标签两次以获得所需的效果,但在我的特定情况下,我在按钮上声明了超过15个属性(AJAX的许多javascript事件处理程序属性),因此重复标记将使JSP非常凌乱.

如何在不牺牲JSP可读性的情况下解决这个问题?是否有任何自定义标记可以通过操作输出DOM将属性添加到父级?

xhtml jsp jspx webforms

18
推荐指数
3
解决办法
3万
查看次数

如何使用JSPX生成有效的HTML?(不是XHTML)

尝试使用JSPX创建HTML页面时,您将面临以下困难:

  • JSPX最小化标签,我们不希望它,例如<div class="foo"></div>变得<div class="foo"/>可以被浏览器不同的解释
  • 例如,必须关闭JSPX标记,而某些HTML标记应保持未关闭<script...>.<script.../>IE和Firefox无法识别自闭标记.
  • 指定HTML5 doctype(<!DOCTYPE html>)
  • 内联JavaScript

这个问题是对其他一些问题的回应,都归结为同样的问题.我找不到一个全面的答案,所以我发布了我的调查结果.

相关问题:

html html5 jsp jspx

15
推荐指数
1
解决办法
1万
查看次数

在JSP/JSPX中转义HTML实体:没有解决方案甚至不存在的问题?

我们使用jspx作为模板引擎.我们有数十个具有数百个el表达式的屏幕,例如$ {user.firstName}或"$ {mail.subject}"

默认情况下,所有这些HTML代码都不会被转义.如果在字段中存在<或"的东西 - 屏幕将失败.我们总是可以使用fn:escapeXml,但在所有地方这样做真的很无聊.

1)默认情况下是否有办法逃脱?

我知道的唯一方法是破解JSP编译器(如tomcat的jasper).但这不是一条路.

2)为什么某人可能需要在el中使用未转义的HTML?在模板外部存储HTML(例如在数据库中)不是一个好习惯.

3)我确信模板引擎应该自动处理它(就像在XSLT中一样),用户为什么要关心它?手动转义(fn:escapeXml)闻起来像SQL手动转义(用于代替JDBC setParam):样板代码和sql注入的好地方(在我们的例子中是跨站点脚本).

jsp jspx escaping

13
推荐指数
2
解决办法
7770
查看次数

JSF中的"for"循环

我只需要for在JSF/ICEFaces中执行一个非常基本的循环,基本上是渲染列号

类似下面的伪代码

for(int i=0; i<max; i++)
{
   <td>#{i}</td>
}
Run Code Online (Sandbox Code Playgroud)

<c:forEach>超过集合标记迭代,但我不想让我的支持bean更复杂返回整数的一个愚蠢的集合.

你知道更短更智能的方式吗?

谢谢

java jsf icefaces jspx

8
推荐指数
2
解决办法
3755
查看次数

在JSPX文件中包含JS文件(JQuery)

我正在Eclipse中创建一个动态Web项目(几乎从头开始),我创建了一个JSPX文件

<head>...
<script type="text/javascript" src="route/to/scripts/jquery.js"></script>
<script type="text/javascript" src="route/to/scripts/jquery.ui.js"></script>
<script type="text/javascript" src="route/to/scripts/something.js"></script>
</head>
Run Code Online (Sandbox Code Playgroud)

我打算使用Jquery UI进行排序,我发现使用JSPX时,只有第一个脚本在Firefox和IE中加载(而在Opera中它可以工作......).如果我使用普通的JSP,无论是HTML的XHTML,它都会加载所有的JS文件.

有没有办法在不使用的情况下成功包含所有JS文件

<script>
<jsp:include ...>
</script>
Run Code Online (Sandbox Code Playgroud)

我必须知道吗?(因为这个加载脚本INTO到最后的(X)HTML)

编辑:只是想...为什么Opera在读取<script>标签时FF和IE失败时读取了xhtml ?它可能是一个错误吗?

javascript jquery jsp jspx

8
推荐指数
1
解决办法
4958
查看次数

当属性名称本身是动态变量时,如何获取bean属性的值

我正在尝试编写一个自定义JSPX标记,该标记从给定列表中的每个对象读取给定bean属性的值,该属性的名称作为JSP属性传递给标记.标签看起来像这样:

<jsp:root xmlns:c="http://java.sun.com/jsp/jstl/core"
        xmlns:jsp="http://java.sun.com/JSP/Page"
        version="2.0">
    <jsp:output omit-xml-declaration="yes"/>

    <jsp:directive.attribute name="items" type="java.lang.Iterable"
        required="true" description="The items whose properties are to be read"
        rtexprvalue="true"/>
    <jsp:directive.attribute name="propertyName" type="java.lang.String"
        required="true" description="The name of the bean property to read"
        rtexprvalue="true"/>

    <c:forEach items="${items}" var="item">
        <!-- This is the bit that doesn't work -->
        <jsp:getProperty name="item" property="${propertyName}" />
    </c:forEach>

</jsp:root>
Run Code Online (Sandbox Code Playgroud)

问题是标签的property属性jsp:getProperty似乎不接受表达式,只接受文字值.所以这可行,但对我没用(因为我不知道属性名称,直到运行时):

<jsp:getProperty name="item" property="firstName" />
Run Code Online (Sandbox Code Playgroud)

我得到的错误是:

org.apache.jasper.JasperException: org.apache.jasper.JasperException:
PWC6054: Cannot find any information on property '${propertyName}' in
a bean of type 'com.example.FooBar'
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助.

jsp jspx properties el javabeans

7
推荐指数
1
解决办法
6491
查看次数

我可以在jspx文件中使用jsp scriptlet吗?

有没有办法在jspx文件中使用jsp scriptlet?<%="hello"%> 在jspx文件中这样写这个给了我错误.请帮忙.

java jsp jspx

7
推荐指数
2
解决办法
6422
查看次数

引用了实体"copy",但未在jspx中声明

我想在jspx中使用版权符号,但它不允许我使用©.它给我一个错误.

引用了实体"copy",但未声明.

我google了它,发现我需要修改escapeMode.但我不知道应该在哪里改变它.

或者任何人都有解决方案,请告诉我.

jspx

7
推荐指数
1
解决办法
4243
查看次数

JSP Document/JSPX:什么决定了输出中如何删除制表符/空格/换行符?

我有一个很好地格式化的"JSP文档"("JSP in XML"),当生成网页并发送给用户时,会删除一些换行符.

现在真正奇怪的部分:显然"主".jsp总是删除所有的换行符,但对于主.jsp中包含的任何后续.jsp,换行符似乎是随机删除的(有些是在那里,有些则不是).

例如,如果我正在查看从Firefox提供的网页并要求"查看源代码",我会看到生成的内容.

那么,什么决定了什么时候/如何保留/删除换行符?

这只是我编写的一个例子......你可以强制使用.jsp来实现这个目的:

<body><div id="page"><div id="header"><div class="title">...
Run Code Online (Sandbox Code Playgroud)

或这个:

<body>
  <div id="page">
    <div id="header">
      <div class="title">...
Run Code Online (Sandbox Code Playgroud)

我认为删除了换行符以节省带宽,但如果我想保留它们怎么办?如果我想保留与我的.jsp文件中相同的XML缩进怎么办?

这可行吗?

编辑

按照skaffman的建议,我看了一下生成的.java文件,"main"没有很多out.write,但没有一个写标签或换行.与该文件相反,我从主要.jsp中包含的所有内容都有很多行,如:

out.write("\t...\n");
Run Code Online (Sandbox Code Playgroud)

所以我想我的问题保持完全相同:什么决定了输出中包含/删除标签/空格/换行符的方式?

java jsp jspx line-breaks

6
推荐指数
1
解决办法
3137
查看次数

标签 统计

jspx ×10

jsp ×8

java ×3

el ×1

escaping ×1

html ×1

html5 ×1

icefaces ×1

javabeans ×1

javascript ×1

jquery ×1

jsf ×1

line-breaks ×1

properties ×1

webforms ×1

xhtml ×1