小编Pie*_*igi的帖子

在循环中重用StringBuilder会更好吗?

我有关于使用StringBuilder的性能相关问题.在一个很长的循环中,我正在操纵a StringBuilder并将其传递给另一个方法,如下所示:

for (loop condition) {
    StringBuilder sb = new StringBuilder();
    sb.append("some string");
    . . .
    sb.append(anotherString);
    . . .
    passToMethod(sb.toString());
}
Run Code Online (Sandbox Code Playgroud)

StringBuilder在每个循环周期实例化是一个很好的解决方案吗?并且更好地调用删除,如下所示?

StringBuilder sb = new StringBuilder();
for (loop condition) {
    sb.delete(0, sb.length);
    sb.append("some string");
    . . .
    sb.append(anotherString);
    . . .
    passToMethod(sb.toString());
}
Run Code Online (Sandbox Code Playgroud)

java string performance stringbuilder

97
推荐指数
6
解决办法
7万
查看次数

添加<h:form>会导致java.lang.IllegalStateException:在提交响应后无法创建会话

添加后,我在一个非常简单的JSF 2页面中面临以下异常<h:form>:

java.lang.IllegalStateException: Cannot create a session after the response has been committed
    at org.apache.catalina.connector.Request.doGetSession(Request.java:2758)
    at org.apache.catalina.connector.Request.getSession(Request.java:2268)
Run Code Online (Sandbox Code Playgroud)

我在Tomcat 7.0.22和JDK 7上使用Mojarra 2.1.3和PrimeFaces3.0M4.

该页面是一个非常基本的数据表:

<html xmlns="http://www.w3.org/1999/xhtml"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:p="http://primefaces.org/ui">
<h:head>

</h:head>
<h:body>
    <h:form>        
        <p:dataTable var="car" value="#{tableBean.cars}">

                 ......
        </p:dataTable>
    </h:form>
</h:body>
</html>
Run Code Online (Sandbox Code Playgroud)

页面在浏览器上正确显示,但在控制台上我看到了异常.如果我删除了,Exception确实会消失<h:form>.

这是怎么造成的,我该如何解决?

forms session jsf jsf-2 illegalstateexception

47
推荐指数
2
解决办法
6万
查看次数

如何知道我是否在回发?

我读过JSF文档中ResponseStateManager有一个isPostBack()方法.我如何(以及在​​哪里)拥有一个实例ResponseStateManager

jsf postback

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

计算跨浏览器的iframe高度

我的javascript体验中最困难的问题之一是iframe高度的正确(即"跨浏览器")计算.在我的应用程序中,我有很多动态生成的iframe,我希望它们都在load事件结束时进行一种自动调整以调整它们的高度和宽度.

高度计算的情况下,我的最佳解决方案是以下(在jQuery的帮助下):

function getDocumentHeight(doc) {
  var mdoc = doc || document;
  if (mdoc.compatMode=='CSS1Compat') {       
      return mdoc.body.offsetHeight;
  }
  else {
    if ($.browser.msie)
      return mdoc.body.scrollHeight;
    else  
      return Math.max($(mdoc).height(), $(mdoc.body).height());
  }
}
Run Code Online (Sandbox Code Playgroud)

我没有成功搜索互联网.我还测试了雅虎库,它有一些文档和视口尺寸的方法,但它并不令人满意.我的解决方案工作正常,但有时它会计算出更高的高度.我已经在Firefox/IE/Safari中研究并测试了大量有关文档高度的属性:documentElement.clientHeight, documentElement.offsetHeight, documentElement.scrollHeight, body.offsetHeight, body.scrollHeight, ... jQuery在各种浏览器中也没有连贯的行为$(document.body).height(), $('html', doc).height(), $(window).height()

我不仅在加载事件结束时调用上述函数,而且在动态插入DOM元素或隐藏或显示的元素的情况下也调用上述函数.这种情况有时会破坏仅在load事件中起作用的代码.

有人有真正的跨浏览器(至少是Firefox/IE/Safari)解决方案吗?一些提示或提示?

javascript iframe jquery

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

jQuery中最近的祖先节点

在我的javascript体验中,我发现这是一个非常常见的任务"搜索具有某些条件的元素的最近祖先(标记名称,类,...)".jquery的parents()方法可以完成这项工作吗?parent()的返回元素的顺序是可预测的吗?从上到下还是从下到上?目前我使用这个实用功能:

function ancestor(elem, selector) {
  var $elem = $( elem ).parent();
  while( $elem.size() > 0 ) {
    if( $elem.is( selector ) ) 
    return $elem;
    else
       $elem = $elem.parent();
  }
  return null;
}
Run Code Online (Sandbox Code Playgroud)

有人能告诉我是否有聪明的方法来完成这项工作?

javascript jquery dom

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

如何更改Firefox中键入的字符

我需要在文本输入中更改字符'.' 输入时'',' 在IE中,我更改了keypress事件中的keyCode事件属性,就像这样

document.getElementById('mytext').onkeypress = 
 function (evt) {
  var e = evt || window.event;
  if (e.keyCode && e.keyCode==46)
   e.keyCode = 44;
  else if (e.which && e.which==46) {
   e.which = 44;
  }
 };
Run Code Online (Sandbox Code Playgroud)

但它表明,在Firefox中,不可能更改键事件中键入的字符.有什么建议?

javascript javascript-events

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

使用jQuery.data

好吧,我承认:我已广泛使用jQuery.attr在多个很多脚本中的DOM元素中存储自定义数据.我想知道是否将我的所有脚本转换为使用jQuery.data而不是jQuery.attr.据我所知,jQuery.data的优点是:

  • 生成整洁有效的HTML代码
  • 可以在元素上存储任何类型的数据(对象,数组,...)

自定义属性的主要优点是:

  • 如果WEB页面不是严格的HTML,我可以在服务器上生成带有自定义属性的HTML代码
  • 在firebug中,很容易检查我的HTML代码以搜索我的自定义属性

有人可以告诉我,如果我错过了某些东西,或者是否存在使jQuery.data更受欢迎的问题?

javascript jquery

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

如何在Chrome浏览器中调用父窗口函数?

嗨,我惊奇地发现在Chrome浏览器中调用窗口父javascript函数时出现问题.如果我有一个窗口,其中定义了javascript函数

<script type="text/javascript">
  function dolink() {
   . . .
  }
</script>
Run Code Online (Sandbox Code Playgroud)

我在该窗口中有一个使用jquery进行此调用的iframe

<script type="text/javascript">
 $(function() {
      $('a.arglink').click(function() {
         window.parent.dolink($(this).attr('href'));
         return false;
      });
 });
</script>
Run Code Online (Sandbox Code Playgroud)

dolink函数的调用不起作用.使用chrome javascript调试器步进,似乎window.parent.dolink 未定义.这是设计还是我犯的错误?在Firefox和IE中它工作正常.

javascript iframe jquery google-chrome

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

iText是否尊重色彩透明度?

我正在使用iText 5.2.1,我尝试使用带有alpha通道的BaseColor构造函数,即

public BaseColor(final int red, final int green, final int blue, final int alpha)
Run Code Online (Sandbox Code Playgroud)

但是当我实际绘制文本或形状时,似乎没有考虑alpha通道.例如,如果我试试这个

  Font f = ....;
  f.setColor(new BaseColor(130, 130, 130, 50);
  PdfContentByte cb = writer.getDirectContent();
  ColumnText.showTextAligned(cb, Element.ALIGN_LEFT, new Phrase("my text", f),
      refPointX, refPointY, 0);
Run Code Online (Sandbox Code Playgroud)

它用指定的颜色书写但没有alpha信息的文本,即100%不透明度的颜色.如果我尝试绘制一些形状并指定具有透明度的填充颜色,则会发生同样的情况.

iText in Action第二版中,没有关于颜色透明度的内容.

我错了吗?

itext

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

如何将自定义CSS类分配给h:dataTable的任意任意行?

我正在尝试将特定的CSS类分配给我的特定行<h:dataTable>.有没有办法访问和cutomize结果表行?

css datatable jsf

3
推荐指数
1
解决办法
1495
查看次数