我在 Intellij Idea 中发现了一个奇怪的行为。在一个大约 300 行的复杂 jspx 页面中,intellij idea 无法再正确格式化代码。
编辑:此问题仅在页面另存为 .jspx 时出现。如果我将它保存为 .xml,问题就会消失。
例如这个页面:
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.0" xmlns="http://www.w3.org/1999/xhtml"
xmlns:c="http://java.sun.com/jsp/jstl/core" xmlns:fmt="http://java.sun.com/jsp/jstl/fmt"
xmlns:f="http://java.sun.com/jsf/core" xmlns:h="http://java.sun.com/jsf/html"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:p="http://primefaces.org/ui"
xmlns:my="http://java.sun.com/jsf/composite/mycomponents"
>
<ui:composition>
<f:view>
<p:panel header="XXX">
<p:outputLabel value="YYY"/>
</p:panel>
</f:view>
</ui:composition>
</jsp:root>
当我按下 Ctrl+Alt+L 时,我得到了正确的输出:
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.0" xmlns="http://www.w3.org/1999/xhtml"
xmlns:c="http://java.sun.com/jsp/jstl/core" xmlns:fmt="http://java.sun.com/jsp/jstl/fmt"
xmlns:f="http://java.sun.com/jsf/core" xmlns:h="http://java.sun.com/jsf/html"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:p="http://primefaces.org/ui"
xmlns:my="http://java.sun.com/jsf/composite/mycomponents"
>
<ui:composition>
<f:view>
<p:panel header="XXX">
<p:outputLabel value="YYY"/>
</p:panel>
</f:view>
</ui:composition>
</jsp:root>
但是当我<p:outputLabel value="YYY"/>
在页面中粘贴大约 300 次时,自动格式化停止工作。
在更复杂的示例中,只有部分代码被格式化(例如,里面的所有内容都p:panel
被格式化,但是ui:composition
并f:view
保持在相同的位置(没有缩进)。
我没有找到任何有用的配置。有没有办法摆脱这种行为?
我使用 Intellij Idea 12 Ultimate