我正在读这个链接JavaScript_syntax
这似乎是循环的 - 每个函数都是一个Object,每个Object本身都是一个函数.哪个是原子的?有人能以更好的方式解释吗?
虽然这可能看起来像Java Web Services的副本,但我想知道从哪里开始并继续.过去,我花了很多时间来寻找从哪里开始,但我无法做到.在阅读有关Web服务的页面时,有这么多的术语和混乱(至少对我而言!).有很多术语 - 比如JAX-RPC, JAX-WS, Axis, Rest, Servlet as WebService, EJB'sWeb Service和其他我不知道的术语.此用户组是否可以整合并提供易于理解和遵循的Java Web服务的高级概述?感谢您的善意,感谢您的帮助.
默认情况下,每个JSF FacesMessage都显示在一行中.我想<br />在消息本身添加一个HTML换行符,以便整齐地显示消息.我尝试过如下
message = new FacesMessage("test<br/>test");
Run Code Online (Sandbox Code Playgroud)
但是,它被JSF转义并显示为文字文本.如何在FacesMessage没有转义的情况下将HTML代码添加到a ?
我试过这种方式,但我无法让这个工作.使用呈现的HTML,我看不到Header或dataTable行的宽度属性.我使用JSF 1.2而没有任何组件库.可能是什么问题呢?
在我的屏幕中,我有一个下拉(选择框),在选择该下拉列表中的任何选项时,我使用javascript/css - display:none和display:block在选择框旁边显示一个或多个文本框.所有这些输入控件都采用相同的jsf格式.每个输入控件都有自己的验证器.问题是假设用户从选择框中选择option1并且没有输入值或输入错误的值 inputbox1,我在Validator中添加了一个自定义FacesMessage并且被正确显示并假设用户第二次选择option2并输入inputbox2的值不正确,然后在验证器中添加另一个FacesMessage.但现在两个消息都显示 - 表示 - inputbox1和inputbox2的消息 - 这是错误的我的假设是,这是因为它们以相同的形式存在,并且它们的实例在FacesContext和UIView中尚未被销毁.我决定以这种方式删除这些消息
Iterator<FacesMessage> msgIterator = FacesContext.getCurrentInstance().getMessages();
while(msgIterator.hasNext())
{
msgIterator.next();
msgIterator.remove();
}
Run Code Online (Sandbox Code Playgroud)
但这有时会产生java.util.NoSuchElementException org.apache.myfaces.shared_impl.renderkit.html.HtmlMessagesRendererBase $ MessagesIterator.next
那2个问题:
1)以这种方式删除FacesMessages有什么问题?我正在使用myfaces-api-1.2.3.jar和myfaces-impl-1.2.3.jar
2)有更好的方法来处理我的场景吗?我只想在每次处理jsf请求时显示相关消息
谢谢
我的目标是使用h:消息来传达用户错误和确认消息.显示这两种不同消息的CSS样式是不同的.实际上我想在确认消息旁边使用一个图像.对于Eg:
<tr> <td><img/></td><td><h:msg></td> </td>.
所以我尝试根据2个不同的客户端ID向Faces Context添加消息
<tr>
<td height="5">
<h:messages style="color:darkred" id="error_message" />
</td>
</tr>
<tr>
<td width="89%" class="InfoMsg" align="center">
<h:messages id="confirm_message" />
</td>
</tr>
Run Code Online (Sandbox Code Playgroud)
并在java层
FacesMessage facesMessage = new FacesMessage(Constants.saveMessageConfirm);
FacesContext.getCurrentInstance().addMessage(Constants.STATIC_CONFIRM_MSG_CLIENT_ID, facesMessage);
Run Code Online (Sandbox Code Playgroud)
但是,即使我向客户端ID confirm_message添加消息 - 并且仅向confirm_message添加 - 而不是error_message - 消息以2种不同的样式显示两次(请参阅上面的HTML)
2个问题:
1)这里有什么问题?
2)如果我想在第二个tr中显示td内的图像,并且在确认消息存在时有条件地显示第二个tr - 最好的方法是什么?
谢谢,
这是我的阶段监听器
public class AdminPhaseListener implements PhaseListener {
private static final long serialVersionUID = -1161541721597667238L;
public void afterPhase(PhaseEvent e) {
System.out.println("after Phase " + e.getPhaseId());
}
public void beforePhase(PhaseEvent e) {
System.out.println("before Phase " + e.getPhaseId());
if(e.getPhaseId()== PhaseId.RESTORE_VIEW)
{
}
}
public PhaseId getPhaseId() {
return PhaseId.ANY_PHASE;
}
}
Run Code Online (Sandbox Code Playgroud)
单击我页面中的命令按钮,我调用一个动作方法并进行一些处理,但是根本没有调用动作方法,但是在服务器日志中,我可以看到我的PhaseListener为所有阶段打印的消息.
如果我的视图没有改变,它会在RESTORE_VIEW阶段之后停止吗?
有什么想法吗?
添加如何显示命令按钮的代码:
<table width="100%">
<h:column rendered="#{adminBean.displayResultsSize > 0}">
<tr>
<td colspan="14" height="5" nowrap="nowrap" class="WhiteRow"></td>
</tr>
<tr>
<td colspan="14" height="1" nowrap="nowrap" align="center"
bgcolor="#999999"></td>
</tr>
<h:inputHidden id="removeUserId" value="#{adminBean.removeUserId}"/>
<h:inputHidden id="removeIBD" value="#{adminBean.removeIBD}"/>
<h:inputHidden …Run Code Online (Sandbox Code Playgroud) 我想就此提出您的意见和建议.我正在为jsf中的页面做分页.数据表通过"绑定"属性绑定到Backing Bean属性.我有2个布尔变量来确定是否渲染'Prev'和'Next'Button - 它显示在数据表下方.时,无论是"上一个"或"下一步"按钮被点击时,在支持bean我得到的结合的dataTable属性和通过其我得到的"第一"和"行" DataTable的属性和相应地改变.我在页面中显示5行.请评论并建议是否有更好的方法.顺便说一句,我对任何JSF组件库都不感兴趣,但只坚持使用核心html渲染工具包.
public String goNext()
{
UIData htdbl = getBrowseResultsHTMLDataTable1();
setShowPrev(true);
//set Rows "0" or "5"
if(getDisplayResults().size() - (htdbl.getFirst() +5)>5 )
{
htdbl.setRows(5);//display 5 rows
}else if (getDisplayResults().size() - (htdbl.getFirst() +5)<=5) {
htdbl.setRows(0);//display all rows (which are less than 5)
setShowNext(false);
}
//set First
htdbl.setFirst(htdbl.getFirst()+5);
return "success";
}
public String goPrev()
{
setShowNext(true);
UIData htdbl = getBrowseResultsHTMLDataTable1();
//set First
htdbl.setFirst(htdbl.getFirst()-5);
if(htdbl.getFirst()==0)
{
setShowPrev(false);
}
//set Rows - always display 5
htdbl.setRows(5);//display 5 rows
return "success";
}
Run Code Online (Sandbox Code Playgroud) 我被问到这个问题:我无法回答 - 这里有任何答案吗?
关于拥有1000行代码的java类,1-n方法有100行和n + 1到m方法有200行代码,可以说什么?
我想,类应该可以有1000行代码和方法也可以有100-200行代码 - 所以我没有回答考虑到这个类完全没问题.
是否存在与java类的行数相关的编译时性能?还是java方法有?有没有标准 - 如果是这样,那么技术上怎么能证明这一点?
谢谢!
我需要你的帮助来更好地理解这一点.这是我的情况.我为表单中的每个输入控件都有一个自定义验证器.因此,当存在任何验证错误时,我会在validate方法中添加相应的FacesMessage.我的理解是,当存在任何验证错误时 - 或者在自定义验证器的验证方法中添加了任何FacesMessages时,它将跳过INVOKE APPLICATION阶段并直接调用RENDER RESPONSE PHASE - 显示添加的FacesMessage过程验证阶段 - 这是正确的吗?
我面临的问题是 - 我在PROCESS VALIDATION阶段添加了一个FacesMessage - 由于验证错误 - 我为INVOKE APPLICATION PHASE中的用户添加了一条确认消息 - 现在两者都显示在RENDER RESPONSE阶段的页面? - 如果我的理解在上述问题中是正确的 - 在确认当前FacesContext中没有FacesMessages之后,有条件地添加确认FacesMessage是最佳做法吗?
这是消息的添加方式:
FacesMessage facesMessage = new FacesMessage(FacesMessage.SEVERITY_ERROR,Constants.invalidMessageDetail,null);
FacesContext.getCurrentInstance().addMessage(null, facesMessage);
throw new ValidatorException(facesMessage);
Run Code Online (Sandbox Code Playgroud)
这是如何显示:
<h:messages errorClass="ErrorMsg" warnClass="WarningMsg" infoClass="InfoMsg" layout="table" />
Run Code Online (Sandbox Code Playgroud)
感谢您的帮助.
jsf ×7
java ×2
axis2 ×1
escaping ×1
html ×1
javascript ×1
jax-rpc ×1
jax-ws ×1
lifecycle ×1
message ×1
messages ×1
validation ×1
web-services ×1