2013-03-03 73 views
0

这里是我的代码:为什么我的表单在新选项卡中打开?

<?xml version='1.0' encoding='UTF-8' ?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" 
     xmlns:h="http://java.sun.com/jsf/html"> 
    <h:head> 
     <title>Guess Number</title> 
    </h:head> 
    <h:body> 

     The number I guessed is: #{guessNumber.generatedNumber} 
     <br />   
     <strong>Please guess the number I generated which is between 0 and 10!</strong> 
     <h:form target="index">   
      <h:commandButton type="submit" value="Guess The Number!"></h:commandButton> 
     </h:form> 

    </h:body> 
</html> 

所以在输出我看到的是这样的:

我猜的数字是:6请猜我产生其数量 为0〜10之间!

和该文本下方的按钮。当我点击按钮时,页面会在新标签页中打开。但为什么?

回答

1

这是由<h:form>中的target属性引起的。请注意,这是为纯HTML定义的,而不是JSF-ish的特殊行为。

要解决问题,只需从<h:form>中删除target属性即可。

+0

但是当我点击新选项卡上的那个按钮时,一个新选项卡将不会打开。它将在同一个选项卡中打开。它只在第一次尝试中打开一个新标签。 – 2013-03-03 18:05:04

+0

这是因为新的目标是'索引'。这将是窗口的名称,所以每次您将结果定位到“索引”窗口(已经创建并且它是您的新窗口/选项卡)。再次,这是HTML行为,与JSF无关。为了更好地理解,请参考答案中的链接。 – 2013-03-03 18:06:11

+0

有趣,谢谢。 – 2013-03-03 18:09:33

相关问题