CN101174214A - 在使用JSF的Web应用中显示和格式化消息的方法和系统 - Google Patents

在使用JSF的Web应用中显示和格式化消息的方法和系统 Download PDF

Info

Publication number
CN101174214A
CN101174214A CNA2007101680483A CN200710168048A CN101174214A CN 101174214 A CN101174214 A CN 101174214A CN A2007101680483 A CNA2007101680483 A CN A2007101680483A CN 200710168048 A CN200710168048 A CN 200710168048A CN 101174214 A CN101174214 A CN 101174214A
Authority
CN
China
Prior art keywords
message
jsp page
facesmessage
information
jsf
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CNA2007101680483A
Other languages
English (en)
Other versions
CN101174214B (zh
Inventor
姚中兴
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
IBM China Co Ltd
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN101174214A publication Critical patent/CN101174214A/zh
Application granted granted Critical
Publication of CN101174214B publication Critical patent/CN101174214B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/542Intercept

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明提供了在使用Java Server Faces(JSF)的Web应用中显示和格式化消息的方法、机器可访问介质以及系统。在JSF Faces Message被发送到用于显示的JSP页面之前截获该Faces Message。可由监视JSF阶段的阶段监视器截获Faces Message以获得来自该消息的信息。还可扩展该方法来处理特定应用消息。受管bean接收该消息信息并创建向该信息提供格式化的JSP页面段。然后在所述JSP页面中显示新近创建的JSP页面段而不是该Faces Message。优选地,该JSP页面段内的格式化包括从消息图标、消息标识码、附加消息段及其组合选择的附加内容。此外,该JSP页面段可以视情况提供高级特征,例如用于附加信息或帮助的可点击图像链接。

Description

在使用JSF的Web应用中显示和格式化消息的方法和系统
技术领域
本发明涉及在使用JavaServer Faces(JSF)开发的Web应用中显示和格式化消息。
背景技术
在Java2平台企业版(J2EE)中,像Java servlets(Java服务组件)和JavaServer Pages(JSP)的Web组件为Web服务器提供了动态扩展能力。Servlets(服务组件)是动态处理请求和构造响应的Java编程语言类。JSP页面是如servlets那样执行的基于文本的文档,但其允许用于创建静态内容的更自然的方法。尽管可以交替地使用servlets和JSP页面,然而其各自具有其自己的实力。Servlets最适合于面向服务的应用以及面向表示(presentation-oriented)的应用的控制功能,例如,调遣(dispatch)请求和处理非文本数据。JSP页面更适合于生成诸如HTML、可伸缩矢量图形(SVG,Scalable Vector Graphics)、无线置标语言(WML)和XML之类的基于文本的置标。
Web组件由称作Web容器的运行时平台的服务来支持。容器在组件与支持该组件的低级别特定平台功能性(low-level platform-specificfunctionality)之间提供接口。在Web组件之前,可以执行企业bean(enterprise bean)或应用客户机组件,必须将企业bean或应用客户机组件装配到模块中并且部署到其容器中。Web容器管理用于J2EE应用的JSP页面和servlet组件的执行。更具体而言,Web容器提供诸如请求调遣、安全性、一致性和生存期管理之类的服务,并且为Web组件提供对应用编程接口(API)的访问,例如命名、事务和电子邮件。Web组件及其容器均在Web服务器上运行。当Web服务器运行Java2平台企业版(J2EE)时,可以将其称为J2EE服务器。
由于Java Servlet和JSP技术的引入,已经开发了用于构建交互式Web应用的另外的Java技术和框架。例如,JavaServer Faces(JSF)正成为用于为Web应用构建服务器端用户接口的新的标准。JavaServerFaces技术包括一组API,其用于表示用户接口(UI)组件和管理其状态、处理事件和输入验证、定义页面导航,以及支持国际化和可访问性。JavaServer Pages(JSP)定制标记库(custom tag library)也包括在内,其用于表示JSP页面内的JavaServer Faces接口。
图1是通过网络14(例如因特网)与Web客户机12通信的现有技术的Web应用服务器10的示意图。客户机通过网络将HTTP请求16发送至Web服务器并且接收HTTP响应18。Web服务器10在Web容器28中实现Java Servlet组件20、JavaServer Pages组件22,以及JavaServerFaces组件24(包括JavaServer Pages标准标记库26)。这些Web组件可以与JavaBean组件30、数据库32或者与这二者进行交互,以便生成动态内容。Web组件然后可以生成响应或将请求传递给用于响应的另一Web组件。最后,Web组件之一,结合Web服务器10一起,生成HTTP响应18并且将其返回给客户机12。
图2是现有技术的JSF过程40的示意图,其中JSF过程40包括导致FacesMessage对象44被发送给JSP页面46的JSF阶段(JSF phases)42。在JSF中,通过FacesMessages对象44来处理消息,并且在使用<h:message>和<h:messages>标记的JSP Web页面46中显示该消息中的信息。
然而,JSF标记对于格式化用于显示的消息提供相当少的灵活性。例如,图3是对由已经接收到依照图2所生成的现有技术的FacesMessages52、54的JSP页面所产生的图形显示50的说明。将FacesMessages 52、54分别显示为消息56、58中的文本。
然而,使用现有的JSF方法来满足高级Web应用的动态格式化需求是相当困难的。因此,需要一种以容易的、可格式化的方式来显示消息的方法。会希望具有一种将使用FacesMessage的简单性与高级显示和格式化特征相结合的方法。
发明内容
本发明提供了一种在使用JSF开发的Web应用中显示和格式化消息的方法,以及一种含有指令的机器可访问介质,当机器执行所述指令时,其使得所述机器实现依照所述方法的操作。所述方法包括以下步骤:在JSFFacesMessage被发送到用于显示的JSP页面之前截获所述FacesMessage,截获所述FacesMessage中的消息信息,创建JSF管理的bean(JSFmanaged bean)来存储所截获的消息信息,创建向所截获的消息信息提供格式化的JSP页面段(JSP page segment),以及在所述JSP页面中显示所述JSP页面段而不是所述FacesMessage。优选地,所述JSP页面段内的格式化包括从消息图标、消息标识码和附加消息段中选择的附加内容。此外,所述JSP页面段内的格式化可以视情况包括可点击图像链接(clickableimage link),从而使得所述方法可以进一步包括:在激活所述可点击图像链接时显示与所述信息相关的附加消息段。
在优选的实施例中,截获JSF FacesMessage的步骤包括:监视JSF阶段。在一个实施例中,所述方法进一步包括:将所述JSF FacesMessage发送至所述JSP页面,用于在分离于所创建的JSP页面段的段中使用<h:message>或<h:messages>命令来进行显示。视情况,所述JSFFacesMessage用于指向与所述JSP页面段中的信息相关的组件。
本发明还提供了一种用于显示消息的系统。所述系统包括:阶段监听器(phase listener),其用于在JSF FacesMessage被发送到用于显示的JSP页面之前截获所述FacesMessage;受管Bean(Managed Bean),其用于创建对来自所述FacesMessage的信息进行格式化的JSP页面段;以及JSP页面,其被配置以显示所述JSP页面段而不是所述FacesMessage。视情况,所述受管Bean可以格式化所述JSP页面段,以便包括从消息图标、消息标识码和附加消息段中选择的附加内容。此外,所述受管Bean可以格式化所述JSP页面段,以便包括可点击图像链接,其中在激活所述可点击图像链接时,显示与所述信息相关的附加消息段。优选地,所述阶段监听器监视JSF阶段。
在所述系统的一个实施例中,所述JSP页面还在所创建的所述JSP页面外部的单独段中显示所述JSF FacesMessage。在另一实施例中,所述JSP页面显示对准(directed at)与所述JSP页面段中的信息相关的组件的指示符,其中所述指示符位于所创建的JSP页面段的外部。所述系统通常会包括Web应用服务器,其运行通过JSP显示内容的Java servlet。
在又一实施例中,本发明可以处理将要通过前述实施例之一(例如包括以下步骤的方法)来显示的特定应用消息(application specific message):在JSF FacesMessage被发送到用于显示的JSP页面之前截获所述FacesMessage,创建向来自受管Bean的信息提供格式化的JSP页面段,以及在所述JSP页面中显示所述JSP页面段而不是所述FacesMessage。用于显示所述消息信息的JSP段还可以被进一步构造成使用当前实施方式的定制标记库。
附图说明
图1是通过网络与Web客户机通信的Web应用服务器的现有技术示意图;
图2是包括导致FacesMessage被发送到JSP页面的JSF阶段的现有技术的JSF过程的示意图;
图3是由已经接收到图2的现有技术的FacesMessage的JSP页面所产生的图形显示的示图;
图4是PhaseListener(阶段监听器)和MessageBean(消息bean)的示意图,其中PhaseListener和MessageBean处理来自FacesMessage的信息以便创建和发送JSP页面段到JSP页面;
图5是由已经接收到图4的JSP页面段的JSP页面所产生的图形显示的示图;
图6A是通过MessageBean可获得的属性列表;
图6B是对包括了用于显示所有属性的“附加信息”显示的格式化消息的说明;以及
图7是与Web应用服务器通信的客户计算机系统的示意图。
具体实施方式
本发明提供了用于在使用JavaServer Faces(JSF)的Web应用中显示和格式化消息的改进的方法、机器可访问介质,以及系统。在JSFFacesMessage被发送到用于显示的JSP页面之前截获该FacesMessage。可以通过监视JSF阶段的阶段监视器来截获FacesMessage,以便获得来自该消息的信息。受管Bean接收消息信息并且创建向该信息提供格式化的JSP页面段。然后在JSP页面中显示新近创建的JSP页面段而不是FacesMessage。优选地,JSP页面段内的格式化包括从消息图标、消息标识码和附加消息段中选择的附加内容。此外,JSP页面段内的格式化可以视情况包括可点击图像链接,从而使得该方法可以进一步包括:在激活可点击图像链接时显示与信息相关的附加消息段。当然,格式化可以包括使用边界、背景颜色、字体、图像、风格类别和其它熟知的格式化能力。
视情况,还可以在一些实例中或出于其它目的而使用JSFFacesMessage。例如,在除了新近创建的JSP页面段之外的段中使用<h:message>或<h:messages>命令,可以将FacesMessage用于在相同或不同的JSP页面中进行显示。视情况,FacesMessage用于指向与JSP页面段中的信息相关的组件。
在一个实施例中,当阶段监视器检测到FacesMessage时或者通过直接访问消息bean中的enableMsgs方法,启用消息显示标志。标志通过消息bean来检测,从而使得该标志控制将消息呈递为JSP页面段。因此,当启用该标志时,将仅显示含有消息的JSP页面段。
优选地在用于向Web客户机提供对Web应用的访问的Web应用服务器中实现该方法。Web应用包括由Java(例如Java2平台企业版(J2EE))所支持的Java servlet、JavaServer Pages(JSP)、JavaServer Faces(JSF),以及JSP标准标记库(JSTL),其均部署在安装于Web应用服务器上的Web容器中。Web应用服务器优选地操作诸如国际商业机器的WebSphere之类的常规服务器软件程序,用于管理Web应用程序。Web服务器可以包括数据库或与数据库进行通信。所描述的方法和系统可以为高级Web应用提供包括增强消息显示在内的动态内容。
图4是包括PhaseListener62和MessageBean64的方法60的示意图,其中PhaseListener62和MessageBean64处理来自FacesMessage44的信息,以便创建和发送JSP页面段(Message.jsp)66到JSP页面68。该过程促进了对JSF的方便使用,与此同时还提供了对消息的高级格式化以及对附加内容和图像的包括。
文中详细描述的例子仅示出了用于显示单消息(即,对于每个请求由PhaseListener所检测到的第一FacesMessage对象)的情况。然而,本发明还包括在对于每个请求生成多个FacesMessage的情况下截获并在JSP页面中显示多个消息。
JSF阶段42包括恢复视图41、应用请求值43、处理确认45、更新模型值47、调用应用49,以及呈递响应51。 PhaseListener62监视应用级阶段43、45、47、49,接收FacesMessage对象44中的信息的副本,并且将该信息提供给MessageBean64(其是JSF管理的bean)。MessageBean64然后可以将该信息连同格式化指令和其它任选信息一起纳入包括在JSP页面68中的JSP页面段(Message.jsp)66中。如线条69所示,还可以以更常规的方式在JSP页面中的另一点使用FacesMessage44。
可以在JSF阶段42中的任何一个内生成Faces消息,但通常在处理确认阶段生成确认和转换消息。在调用应用阶段49中添加特定应用消息并且以FacesMessage对象44的形式生成特定应用消息。PhaseListener62监视所有的事件和所生成的FacesMessage,并且确定消息是否是由系统确认所生成的系统消息,或者消息是否是由应用实现所生成的特定应用消息。PhaseListener然后设置适当的信息到MessageBean64。MessageBean64解析FacesMessage中的信息并且读取在格式化显示时所需要的信息(例如,消息ID、消息、消息图标链接、附加消息等)。例如,MessageBean64可以从消息目录67中提取客户机语言的特定消息并且存储该消息用于格式化和显示。构造JSP页面段66以便基于客户需求以更可控的格式显示从MessageBeam 64获得的信息。可以将新的显示风格添加到该JSP页面段。可以将该JSP页面段66嵌入到任何一个JSF JSP页面68中来显示从系统和/或应用生成的任何可能的消息。
可以如下实现示例性PhaseListener62:
public void beforePhase(PhaseEvent  e)  {
      FacesContext fc=e.getFacesContext();
      UIViewRoot root=fc.getViewRoot();
      String mbName=fc.getApplication().getMessageBundle();
//get client locale
      Locale locale=root.getLocale();
//get the message bean handle
      DWEMessage dweMsg=
            (DWEMessage) fc.getApplication().createValueBinding(
                   ″#{dweMsg}″).getValue(fc);
//set client locale to the message bean for this request
      dweMsg.setLocale(root.getLocale());
      dweMsg.setDisplay(false);
//Find possible FacesMessage and its associated component ID
       Iterator iterl=fc.getClientIdsWithMessages();
       String detail;
       String msg;
       boolean doneMsg=false;
       FacesMessage fmsg;
       UIComponent comp;
       String compName,fieldDesc;
       while  (iterl.hasNext())  {
              String clientid=(String)iter1.next();
              Iterator iter2=fc.getMessages(clientid);
              while  (iter2.hasNext())  {
                     fmsg=  (FacesMessage)  iter2.next();
                     if (doneMsg){
                           fmsg.setSummary(″″);
                     } else {
                           detail=fm.getDetail();
                          if (clientid.equals(DWEMessage.clientId)){
//set information to message bean for the application specific message
//which is identified by a generic component id defined in
//DWEMessage.clientId
                              msg=fmsg.getSummary();
                              dweMsg.enableMsgs(msg,detail);
                        } else {
//extract and set information for system validation messages
                              compName=clientid;
                              comp=root.findComponent(clientid);
                              if(comp!=null){
//extract additional attribute for describing the specific
//component
                                    fieldDesc=
                                          (String)
comp.getAttributes().get(″field_desc″);
                                     if (fieldDesc!=null){
                                           compName= fieldDesc;
                                     }
                              }  //done if comp!=null
                              dweMsg.enableFacesMsgs(compName,detail);
                              fmsg.setSummary(″*″);
                         }
                         doneMsg=true;
                   } //done if(doneMsg)
             } //done while(iter2)
      } //done while(iter1)
}
典型的消息含有:(1)消息ID,(2)缺省消息,(3)在来自消息目录的真实转换消息(real translated message)中用于替换的可能的参数,(4)附加的细节消息,以及(5)消息的严重性(severity)。然而,FacesMessage对象仅含有两个字段,即,摘要字段(summary field)和细节字段(detail field),在这两个字段中保存来自消息的该信息。因此,该信息连接成单个串。消息bean可以执行用于组构(compose)替换参数、消息ID,以及摘要消息串的方法。这样的方法的一个例子如下:
/*
 *  Compose the substitute parameters and message ID into a composed
 *  summary message string.
 *  @param id-The message ID.
 *  @param pars  -  The array of substitute parameters for this message.
 *  @return String  -The composed summary message string.
 */
 public String composeSummaryMsg(String id,String[]pars)  {
      String str=id;
      if(pars  !=null)  {
            for(int i=0;i<pars.length;i++)    {
                  str+=msg_sep;
                  str+=pars[i];
            }
       }
        return str;
     }
/*
 *  Compose the default message and additional message into a composed
 *  detail message string.
 *
 *  @param defMsg  -  The default message.
 *  @param addMsg-The additional message.
 *  @return String-  The composed detail message string.
 */
     public String composeDetailMsg(String defMsg,String addMsg)  {
       String str=defMsg;
       if(oriMsg  !=  null  )  {
                       str+=msg_sep;
                       str+=addMsg;
       }
       return str;
}
可以通过应用来组构和添加特定应用消息(或定制应用消息)。可以如下实现一种用于生成特定应用消息的示例性方法:
DWEMessage.clientId是为定制应用消息定义的通用组件(genericcomponent)ID。
/*
 *  Add a new  FacesMessage with message parameter substitution
 *  and secondary message
*
*  @param id The message ID of the message
*  @param pars The array of parameters
*  @param defmsg The default message for this message ID
*  @param addgmsg The additional messages to be displayed
*
*/
public void addDWEFacesMessage(
          String id,
          String[ ]  pars,
          String defmsg,
          String addmsg)
{
    String summary=  DWEMes sage.composeSummaryMsg(id,pars);
    String detail=DWEMessage.composeDetailMsg(defmsg,addmsg);
    FacesMessage fmsg=new FacesMessage(summary,detail);
    FacesContext context=FacesContext.getCurrentInstance();
    context.addMessage(DWEMessage.clientId,fmsg);
}
在PhaseListener 62已经截获了FacesMessage之后,PhaseListener然后分派信息,包括所组构的摘要消息串、细节消息串,以及客户机地点(locale)。消息bean中用于控制是否要显示消息的标志将被设置成“真(true)”。将调用MessageBean 64中的enableMsg方法,并且该方法然后可以基于composeSummaryMsg和composeDetailMsg方法中用于组构摘要消息串和细节消息串的规则来分解这些串。因此,消息bean能够提取(1)消息ID,(2)缺省消息,(3)在来自消息目录的真实转换消息中用于替换的可能的参数,以及(4)附加的细节消息。可以基于客户机地点加载消息目录67,以便MessageBean64可以提取符合客户机地点的转换消息用于显示。
响应于通过PhaseListener 62接收到来自FacesMessage44的消息信息,Message Bean64使得以下属性可用于提取和显示:
属性 属性描述
display 该标志指示是否存在可用于显示的消息。
displayOrig 如果存在可用于显示的附加消息,则将该值设置成“真”。
msgId 将要显示的消息的消息ID。
image 基于消息的严重性的关联图像图标链接。
displayMsg 基于客户机地点将要显示的消息。如果特定消息不在用于客户机地点的消息目录中,那么将使用缺省消息。
originalMsg 用于显示的附加消息。
可以通过JSP页面段66使用这些消息属性。示例性JSP页面段如下:
<f:loadBundle basename=″com/ibm/dwe/nls/dwerc″var=″rc″/>
<script language=″Javascriptl.2″type=″text/javascript″>
      <!--
      function toggleMsg(divID)  {
            var msgDiv =  document.getElementById(divID);
            var imgObj =  document.getElementById(″dweDetailImg″);
            if(msgDiv  !=  null)  {
                  var currentVisibility=msgDiv.style.visibility;
                  if(currentVisibility==″visible″)  {
                        msgDiv.style.visibility=″hidden″;
                        msgDiv.style.display=  ″none″;
                        imgObj.src=″/dweadm/images/menu_plus.gif″;
                  }
                  else  {
                        msgDiv.style.visibility=  ″visible″;
                        msgDiv.style.display=  ″block″;
                        imgObj.src=″/dweadm/images/menu_minus.gif″;
                  }
             }
             return true ;
      }
      //-->
</script>
<%--  Start  Display DWE Messages    --%>
               <h:panelGrid styleClass=″msgGrid″id=″msggrid″columns=″2″
rendered=″#{dweMsg.display}″>
                <hx:graphicImageEx styleClass=″graphicImageMsg″
id=″msgImageEx″value=″../images/#{dweMsg.image}″
align=″top″></hx:graphicImageEx>
                 <h:panelGrid styleClass=″panelGrid″id=″infogrid″
columns=″1″>
                           <h:outputText styleClass=″outputMsgID″
id=″messageID″
                                 value=″#{dweMsg.msgId}″style=″font-
weight:bold″></h:outPutText>
                          <h:outputText styleClass=″outputMsgText″
id=″messageText″
        value=″#{dweMsg.displayMsg}″></h:outputText>
                             <h:panelGrid styleClass=″panelGrid″
id=″detailGridl″columns=″1″rendered=″#{dweMsg.displayOrig}″>
                          <f:verbatim>
                         <a id=″dweDetailLnk″
                    onclick=″toggleMsg(′originalMsgDiv′);″style=″color:
blue;text-decoration:underline″>
                     <img id=″dweDetailImg″
                        src=″/dweadm/images/menu_plus.gif″width=″8″
height=″8″
                         alt=″<c:out
value=″${rc.msg_additional_info}″/>″/>  <c:out
value=″${rc.msg_additional_info}″/></a>
                      <div id=″originalMsgDiv″style=″visibility:hidden;
display:none″>
                           <c:out value=″${dweMsg.originalMsg}″/>
                        </div>
                          </f:verbatim>
                      </h:panelGrid>
                </h:panelGrid>
              </h:panelGrid>
<%--End Display DWE Messages    --%>
图5是对由已经接收到依照图4的JSP页面段66的JSP页面68所产生的图形显示70的说明。JSP页面包括加载用于显示的页面段的代码段72。例如,页面段显示为格式化消息74。由JSP页面段所产生的格式化消息74包括在图3的现有技术消息56中未提供的附加细节(即,对字段“Model Name(模型名称)”的标识)。该信息使得消息对于用户而言更可理解。此外,格式化消息74配备了在现有技术的JSF消息中未提供的错误严重性图标(error severity icon)76和错误代码78。应当认识到,还可以提供JSP页面段作为定制扩展标记库。
JSP页面还包括代码段80,代码段80包括了<h:message>标记,以便将FacesMessage 44的摘要显示为星号“*”81。在该例中,通过在PhaseListener内进行编程,将摘要建立为星号“*”。星号作为指示错误消息与哪个组件相关的指示符。
图6A提供了通过MessageBean可获得的属性列表63。图6B是对格式化消息65(类似于图5中的格式化消息74)的说明,格式化消息65包括了用于显示所有属性的“附加信息”显示。该信息可以帮助用户理解消息。
图7是通过网络14(例如因特网)与Web客户计算机12通信的Web应用服务器10的示意图。用户的计算机12包括常规组件,例如,处理器94、存储器95(例如,RAM)、耦合处理器94和存储器95的总线96、通过I/O控制器98耦合于处理器和存储器的大容量存储设备97(例如,磁硬盘或光存储盘),以及诸如常规调制解调器的网络接口99。Web应用服务器系统10也包括常规组件,例如,处理器81、存储器82(例如,RAM),耦合处理器81和存储器82的总线83、通过I/O控制器85耦合于处理器81和存储器82的大容量存储设备84(例如,磁盘或光盘),以及诸如常规调制解调器的网络接口86。
应当理解,还可以以在Web应用服务器10上的计算机可读介质上(例如,在大容量存储设备84或存储器82中)存储为可执行指令的软件来实现本发明。所示的Web应用服务器系统10具有Web应用服务器程序87、Java程序88(包括Java servlets、JSP、JSF、JavaBeans、标记库、PhaseListener对象,以及MessageBean对象),以及存储在大容量存储设备84中的数据库89。Web应用服务器10因而适于以这样的方式使用JavaServer Faces来处理对HTTP请求的接收和响应,即在该方式中,通过PhaseListener获得FacesMessage,并且将其提供给MessageBean用于创建具有依照图4和图5的高级格式化和附加内容或细节的JSP页面段。
通信网络14是用于在Web应用服务器10与任意数目的各种设备和计算机(单独表示为计算机12)之间提供通信链路的介质。通信网络14可以包括诸如有线或光缆的永久连接,或者通过电话或无线通信而获得的临时连接。注册用户的计算机和Web应用服务器可以由各种类型的计算设备来表示,例如,大型计算机、个人计算机、个人数字助手(PDA)、智能电话等。服务器系统可以包括附加的服务器、客户机、路由器和其它未示出的设备。在图1的例子中,网络系统14可以包括因特网(使用TCP/IP协议组相互通信的全世界的网络和网关的集合)。当然,Web应用服务器10还可以通过多种不同类型的网络(举例来说,诸如内联网、局域网(LAN)或广域网(WAN))进行通信。
可以在各种硬件平台上实现本发明并且可以在各种软件环境中实现本发明。典型的操作系统可以用于控制在数据处理系统内的程序执行。此外,
尽管以下所描述的优选实施例包括在注册用户的计算机处的“browser(浏览器)”93,作为在安全协议中与Web应用服务器交换数据的代理,然而,在注册用户的计算机处的代理并不一定是诸如Netscape Navigator或Microsoft Internet Explorer的常规浏览器。为了视情况保护传送至服务器以及从服务器传送的信息,用户的计算机可以具有交换于安全协议(例如,安全套接层(SSL)版本3.0及以上)中的公钥基础设施(PKI)技术的能力。
Web应用服务器10优选地操作诸如国际商业机器的WebSphere的常规服务器软件程序87,用于管理Web应用程序。服务器软件包括使得服务器10能够管理Web应用程序的应用程序。
计算机网络14可以是因特网、内联网或其它的网络。服务器10可以是Web应用服务器(WAS)、服务器应用、servlet过程等。视情况,注册用户的设备12向Web应用提交HTTP请求。应用服务器10生成通过设备12上的浏览器93在图形显示屏92上显示的图形用户接口。
应当认识到,本发明可以采取全硬件实施例、全软件实施例或者既含有硬件元素又含有软件元素的实施例的形式。在特定的实施例中(包括方法的那些实施例),可以以软件实现本发明,其包括但不限于固件、常驻软件、微码等。
此外,本发明可以采取可访问于计算机可读介质的计算机程序产品的形式,该计算机可读介质提供由计算机或任何指令执行系统使用的或者与计算机或任何指令执行系统结合使用的程序代码。对于该描述来说,计算机可用或计算机可读介质可以是能够容纳、存储、通信、传播或传送由指令执行系统、装置或设备使用的或者与指令执行系统、装置或设备结合使用的程序的任何装置。介质可以是电子、磁性、光学、电磁、红外或半导体系统(或装置或设备)或者传播介质。计算机可读介质的例子包括半导体或固态存储器、磁带、可装卸计算机磁盘、随机访问存储器(RAM)、只读存储器(ROM)、硬磁盘和光盘。光盘的当前的例子包括只读光盘存储器(CD-ROM)、读/写光盘(CD-R/W)、DVD-只读存储器(DVD-ROM),以及读/写DVD(DVD-R/W)。
适于存储和/或执行程序代码的数据处理系统可以包括通过系统总线直接地或间接地耦合于存储元件的至少一个处理器。存储元件可以包括在程序代码的实际执行期间所使用的局部存储器、大容量存储器,以及为了减少在执行期间必须从大容量存储器检索代码的次数而提供对至少一些程序代码的临时存储的高速缓冲存储器。
输入/输出或I/O设备(包括但不限于键盘、显示器、指点设备等)可以直接地或者通过插入I/O控制器耦合于系统。网络适配器也可以耦合于系统,从而使得数据处理系统能够适于通过介入专用或公用网络耦合于其它的数据处理系统或远程打印机或存储设备。调制解调器、电缆调制解调器和以太网卡正是几种当前可用类型的网络适配器。
如本文权利要求和说明书中所使用的术语“包括”、“含有”和“具有”,应当被认为是指示可以包括未指定的其它元件的开放群组。如本文权利要求和说明书中所使用的术语“基本上包括”,应当被认为是指示可以包括未指定的其它元件的部分开放群组,只要那些其它的元件本质上未改变本发明所要求保护的基本的和新颖的特征。应当认为术语“一”和单数形式的词包括复数形式的相同的词,从而使得术语意指提供了一个或多个某物。术语“一个”或“单个”可以用于指示预期的某物是一个且仅一个。类似地,在预计具体数目的事物时可以使用其它具体的整数值,例如“两个”。术语“优选地”、“优选的”、“偏好”、“视情况”、“可以”,以及类似的术语可以用于指示所涉及的项目、条件或步骤是本发明的任选(非必需的)特征。
根据前述描述可以理解,在不背离本发明的真实精神的情况下可以对本发明的优选实施例进行各种修改和改变。本说明书旨在仅是出于说明的目的而不应当被认为具有限定意义。本发明的范围应当仅由以下权利要求的语言进行限定。

Claims (15)

1.一种计算机实现的方法,其包括:
在JSF FacesMessage被发送到用于显示的JSP页面之前截获所述FacesMessage;
截获所述FacesMessage中的消息信息;
创建JSF管理的bean来存储所截获的消息信息;
创建向所截获的消息信息提供格式化的JSP页面段;以及
在所述JSP页面中显示所述JSP页面段而不是所述FacesMessage。
2.根据权利要求1的方法,其中所述JSP页面段内的格式化包括:从消息图标、消息标识码和附加消息段中选择的附加内容。
3.根据权利要求1的方法,其中所述JSP页面段内的格式化包括:可点击图像链接,所述方法进一步包括:
在激活所述可点击图像链接时显示与所述信息相关的附加消息段。
4.根据权利要求1的方法,其进一步包括:
将所述JSF FacesMessage发送至所述JSP页面用于显示在单独的段中。
5.根据权利要求4的方法,其中所述JSF FacesMessage用于指向与所述JSP页面段中的信息相关的组件。
6.根据权利要求1的方法,其中所述JSF FacesMessage是通过组构或调遣消息所创建的特定应用消息。
7.根据权利要求6的方法,其进一步包括:
分解所述特定应用消息。
8.根据权利要求6的方法,其进一步包括:
将特定语言信息合并到所述消息中。
9.一种系统,其包括:
阶段监听器,其用于在JSF FacesMessage被发送到用于显示的JSP页面之前截获所述FacesMessage;
受管Bean,其用于创建对来自所述FacesMessage的信息进行格式化的JSP页面段;以及
JSP页面,其被配置以显示所述JSP页面段而不是所述FacesMessage。
10.根据权利要求9的系统,其中所述受管Bean提供可以包括在用于显示的JSP页面段中的附加内容,其中所述附加内容是从消息图标、消息标识码和附加消息段中选择的。
11.根据权利要求9的系统,其中所述受管Bean格式化所述JSP页面段,以便包括从消息图标、消息标识码和附加消息段中选择的附加内容。
12.根据权利要求11的系统,其中所述受管Bean在没有格式化所述附加内容的情况下提供所述附加内容。
13.根据权利要求9的系统,其中所述受管Bean格式化所述JSP页面段,以便包括可点击图像链接,其中在激活所述可点击图像链接时,显示与所述信息相关的附加消息段。
14.根据权利要求9的系统,其中所述阶段监视器监视JSF阶段。
15.根据权利要求9的系统,其进一步包括:
Web应用服务器,其运行通过JSP显示内容的Java servlet。
CN2007101680483A 2006-11-02 2007-11-02 在使用JSF的Web应用中处理消息的方法和系统 Expired - Fee Related CN101174214B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/555,874 US7895607B2 (en) 2006-11-02 2006-11-02 Method for displaying and formatting messages in web applications using JavaServer Faces
US11/555,874 2006-11-02

Publications (2)

Publication Number Publication Date
CN101174214A true CN101174214A (zh) 2008-05-07
CN101174214B CN101174214B (zh) 2012-03-21

Family

ID=39399077

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2007101680483A Expired - Fee Related CN101174214B (zh) 2006-11-02 2007-11-02 在使用JSF的Web应用中处理消息的方法和系统

Country Status (2)

Country Link
US (1) US7895607B2 (zh)
CN (1) CN101174214B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106682242A (zh) * 2017-02-20 2017-05-17 山东浪潮商用系统有限公司 一种海外项目自定义国际化标签和日期数字的格式化方法
CN113810268A (zh) * 2021-05-31 2021-12-17 多益网络有限公司 一种消息格式化方法、装置、设备和存储介质

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7987430B2 (en) * 2007-05-22 2011-07-26 International Business Machines Corporation Apparatus, system, and method for customizing a graphical user interface
US8201156B1 (en) * 2007-06-08 2012-06-12 Emc Corporation Automatic generation of message IDS
CN110554857B (zh) * 2018-05-30 2021-06-22 马上消费金融股份有限公司 JavaBean生成方法、装置、系统及可读存储介质

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106682242A (zh) * 2017-02-20 2017-05-17 山东浪潮商用系统有限公司 一种海外项目自定义国际化标签和日期数字的格式化方法
CN113810268A (zh) * 2021-05-31 2021-12-17 多益网络有限公司 一种消息格式化方法、装置、设备和存储介质
CN113810268B (zh) * 2021-05-31 2024-02-20 多益网络有限公司 一种消息格式化方法、装置、设备和存储介质

Also Published As

Publication number Publication date
CN101174214B (zh) 2012-03-21
US20080109738A1 (en) 2008-05-08
US7895607B2 (en) 2011-02-22

Similar Documents

Publication Publication Date Title
CN107967143B (zh) 获取客户端应用程序源代码的更新指示信息的方法、装置和系统
CN101295248B (zh) 在主动滚动的视图窗格中提供功能性上下文的方法和系统
US20050187895A1 (en) Dynamically customizing a user interface for the aggregation of content
US20100058481A1 (en) Non-displaying method of secret information and information processing device
US8572564B2 (en) Configuring and constructing applications in a mainframe-based computing environment
CN102362261B (zh) 通过网络浏览器输入内容至应用程序
US20060156315A1 (en) Method, computer-readable medium and apparatus for providing a graphical user interface in a client-server environment
US7379998B2 (en) System and method for multi-platform queue queries
KR20060047421A (ko) 테이블을 이용한 언어 로컬화
US8364625B2 (en) Mainframe-based business rules engine construction tool
US20130117719A1 (en) Context-Based Adaptation for Business Applications
JP2018508059A (ja) ネットワークベース静的フォントサブセット管理
US20090100344A1 (en) Mainframe-based browser
EP2290530A1 (en) Widget framework
CN101174214B (zh) 在使用JSF的Web应用中处理消息的方法和系统
US20060117257A1 (en) System and method for processing JavaScript resource files
US20160359654A1 (en) Mobile client application for managing user interface components
CN113220273B (zh) 微前端应用资源处理方法、装置、设备和介质
KR20090000199A (ko) 웹 서버 어플리케이션 프레임워크와 상기 프레임워크를이용한 웹 어플리케이션 처리 방법 및 이를 구현할 수 있는컴퓨터로 읽을 수 있는 기록 매체
US20200356721A1 (en) Rendering Based on a Document Object Model
US10229093B2 (en) Method and system for implementing a common data interface to web services
US20100023853A1 (en) Windows presentation foundation based ui generation for abstract wsdls
US20150317404A1 (en) Accessing Content in a Rich Internet Application
CN113395292B (zh) 报文处理方法、装置、电子设备及存储介质
CN113342450B (zh) 页面处理的方法、装置、电子设备及计算机可读介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20180613

Address after: 7 floor, building 10, Zhang Jiang Innovation Park, 399 Keyuan Road, Zhang Jiang high tech park, Pudong New Area, Shanghai.

Patentee after: International Business Machines (China) Co., Ltd.

Address before: American New York

Patentee before: International Business Machines Corp.

TR01 Transfer of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20120321

Termination date: 20191102

CF01 Termination of patent right due to non-payment of annual fee