如果sh具有某个值(sh = Day或Night),则工作正常,但是当其为空/空时,它将读取null条件,并跳过我的html页面的所有代码,并且控件结束HTML文件的结尾。

问题:如果没有,我尝试了else / else。请帮助我如何处理而不更改页面布局?**

Goal:
When getShift() = null
then uncheck all checkboxes
And getShift()="Day"
then select radio button = Day
And getShift()="Night"
then select radio button = Night


问题:如果没有,我尝试了else / else。请帮助我如何处理而不更改页面布局?**

这是我的代码:

<% String sh= null; %>
<% sh= di.getShift(); %>
<%  if(sh==null)  {%>
        <div class="form-check-inline">
        <input type="radio" class="form-check-input" id= "Day" name="optradio" >Day
        <input type="radio" class="form-check-input" id= "Night" name="optradio">Night
        </div>
<% } %>

<% if(sh.equals("Day")) { %>
<div class="form-check-inline">
        <input type="radio" class="form-check-input" id= "Day" name="optradio"  checked>Day
        <input type="radio" class="form-check-input" id= "Night" name="optradio">Night
        </div>
<% }%>

<%  if(sh.equals("Night"))  {%>
        <div class="form-check-inline">
        <input type="radio" class="form-check-input" id= "Day" name="optradio"  >Day
        <input type="radio" class="form-check-input" id= "Night" name="optradio" checked>Night
        </div>
<% }%>

[![enter image description here][1]][1]


  [1]: https://i.stack.imgur.com/GCq2c.png

最佳答案

最好的选择是使用三元运算符或使用try / catch子句处理异常。 Catch子句可以执行代码,以防止程序遇到运行时异常(例如NullPointer)时中断程序。易于实现。

由于三元示例已在注释中列出,因此这是我使用try / catch处理它的方式:

try {
    sh = di.getShift();
    //etc
} catch (NullPointer e)
    e.printStackTrace(); //optional error output
    continue;   //allows program to continue operation by iterating to next loop


应该提到的是,这通常不是一个好习惯。但是,在您的特定情况下,我认为没有问题。 Web元素可能很棘手,有时会随机跳过数据表中的值。只要您了解为什么要获取null值,我认为您可以继续处理异常。

关于java - 具有Java代码的HTML中的IF条件是跳过HTML的所有代码并给出NULL POINTER,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/61764449/

10-12 00:23
查看更多