Unable to call the backend action method
Hi,
First of all,I would like to let you know that I am not very much familiar with jsf. My problem is as follows:
I have a jsf page having some input text boxes,one gridview component( Infragistics jsf component) and a submit button. On submit, I am trying to call one managedbean action method. The gridview component has further two columns,one input text box and one h:selectonemenu component.
When I try to submit the page, it doesn't call the managedbean action method.The gridview component has one attribute called datasource which is basically a list.During debugging, I found that on submitting the page, it goes to getter of datasource.
One thing I noticed that If I remove the h:selectonemenu from the gridview component, the action method gets called.
Can any body please suggest me where could be the problem?
Thank you
Hi Guys,
Thanks for your solutions and answers. My problem was solved.
But again I have similar kind of problem. This time I have h:selectOneRadio component which seems to be causing the problem because if I remove this, the call goes to action method. It's again seems to be conversion or validation error.As suggested,I have tried putting <h:message> for this component but I get a warn message in console like "Unable to find component with ID 'categorylist' in view". I further saw in the html source of the page and indeed found that the id was not there.I have no idea about it,why it's happening.
I have following code snippet for jsp page:
<div id="inner_body" style="height: 550px;">
<h:outputText value="#{msg.Manage_MED_CLASS}" styleClass="title" />
<h:messages globalOnly="true" styleClass="error" />
<f:verbatim>
<br />
<br />
</f:verbatim>
<br />
<ig:gridView id="medclassdefnitionlist"
dataSource="#{medClassManagedBean.medClassDefinitions}">
<ig:column>
<f:facet name="header">
<h:outputText value="Med class definition"></h:outputText>
</f:facet>
<h:outputText value="#{DATA_ROW.medClassDef}"></h:outputText>
</ig:column>
<ig:column>
<f:facet name="header">
<h:outputText value="Classification(Controlled/Uncontrolled)"></h:outputText>
</f:facet>
<h:selectOneRadio id="categorylist"
value="#{DATA_ROW.medClassCategory}"
style="white-space: nowrap">
<f:selectItem itemLabel="Yes" itemValue="true" id="itemid1"/>
<f:selectItem itemLabel="No" itemValue="false" id="itemid2"/>
</h:selectOneRadio>
<h:message for="categorylist" styleClass="error"></h:message>
</ig:column>
</ig:gridView>
<f:verbatim>
<br />
<br />
</f:verbatim>
<h:panelGrid columns="2" cellpadding="4" cellspacing="3">
<h:commandButton image="../../../images/btn_save.gif"
accesskey="S"
action="#{medClassManagedBean.saveMedClassDefinition}"
style="outline: none;"></h:commandButton>
<h:commandButton accesskey="C" style="outline: none;"
image="../../../images/btn_cancel.gif"
action="backtoreportinglevel" />
</h:panelGrid>
</div>Under ig:gridView component, I have two columns, in the first one h;outputtext is there while in the 2nd one h:selectOneRadio is there. I tried putting immediate="true" in h:commandButton , and then the call goes to the action method. So, it is definitely failing in either validation or conversion phase.
The following is my java code snippet:
public ArrayList<MedClassBackingBean> getMedClassDefinitions() {
try {
medClassDefinitions = new ArrayList<MedClassBackingBean>();
HttpServletRequest request = (HttpServletRequest) FacesContext
.getCurrentInstance().getExternalContext().getRequest();
HttpSession session = request.getSession();
String hospitalCode = (String) session
.getAttribute(Constants.HOS_GLO_EXCLUSION_SESSION_VAR);
MedGroupBD medGroupBd = new MedGroupBD();
List<Object[]> medClassList = medGroupBd
.getMedClassDefinitionsForHospital(hospitalCode);
//populateMedClassCategoryList();
if (UtilityFunctions.isNotEmpty(medClassList)) {
for (Object[] medClass : medClassList) {
MedClassBackingBean medClassBackingBean = new MedClassBackingBean();
medClassBackingBean.setHospitalCode(hospitalCode);
medClassBackingBean.setMedClassDef(medClass[0].toString());
if (medClass[1] != null) {
if (medClass[1].toString().equals("Controlled")) {
medClassBackingBean.setMedClassCategory("true");
} else {
medClassBackingBean.setMedClassCategory("false");
} else {
medClassBackingBean.setMedClassCategory("false");
medClassDefinitions.add(medClassBackingBean);
} catch (Exception e) {
log.error(e.getMessage(), e.getCause());
return medClassDefinitions;
}The above code returns the list for the ig:gridView datasource. "medClassCategory" is the property of backing bean which is mapped for the value attribute of h:selectOneRadio component. The managed bean is in the request scope.Right now on submit of form, first the call goes to this method "getMedClassDefinitions" and then I found like call goes to setter of medClassCategory property in the backing bean as well and sets the changed value from the UI but it never goes to the action method.
Please see if anybody can help me.
Thank you,
Edited by: dacsinha on Nov 27, 2009 6:36 AM
Similar Messages
-
Unable to call the RFC from the WD java Program
Hi All,
I have a table and three buttons Create, Edit, Save in the layout.
If no record available in the R3 the the end user will click on create and then he will click on save so that the insert RFC will be called accordingly and the record will be inserted.My table is limited to 5 records only. If i enter all the 5 records and Click on submit the record is inserting in the backend , but if i enter less than 5 records im unable to call the RFC what might be the issue.
My insert RFC takes one Table node and 4 import parameters i'm passing all of the all the mentioned import parameters.
Code:-
View Controller code
// This file has been generated partially by the Web Dynpro Code Generator.
// MODIFY CODE ONLY IN SECTIONS ENCLOSED BY @@begin AND @@end.
// ALL OTHER CHANGES WILL BE LOST IF THE FILE IS REGENERATED.
package com.gmr.ess;
// IMPORTANT NOTE:
// ALL IMPORT STATEMENTS MUST BE PLACED IN THE FOLLOWING SECTION ENCLOSED
// BY @@begin imports AND @@end. FURTHERMORE, THIS SECTION MUST ALWAYS CONTAIN
// AT LEAST ONE IMPORT STATEMENT (E.G. THAT FOR IPrivateAPPView).
// OTHERWISE, USING THE ECLIPSE FUNCTION "Organize Imports" FOLLOWED BY
// A WEB DYNPRO CODE GENERATION (E.G. PROJECT BUILD) WILL RESULT IN THE LOSS
// OF IMPORT STATEMENTS.
//@@begin imports
import java.math.BigDecimal;
import java.util.Date;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Collection;
import java.util.Iterator;
import com.gmr.ess.wdp.IPrivateAPPView;
import com.gmr.pck.Zst_Hr_Nominee;
import com.sap.tc.webdynpro.progmodel.api.IWDMessageManager;
import com.sap.tc.webdynpro.services.sal.um.api.IWDClientUser;
import com.sap.tc.webdynpro.services.sal.um.api.WDClientUser;
//@@end
//@@begin documentation
//@@end
public class APPView
Logging location.
private static final com.sap.tc.logging.Location logger =
com.sap.tc.logging.Location.getLocation(APPView.class);
static
//@@begin id
String id = "$Id$";
//@@end
com.sap.tc.logging.Location.getLocation("ID.com.sap.tc.webdynpro").infoT(id);
Private access to the generated Web Dynpro counterpart
for this controller class. </p>
Use <code>wdThis</code> to gain typed access to the context,
to trigger navigation via outbound plugs, to get and enable/disable
actions, fire declared events, and access used controllers and/or
component usages.
@see com.gmr.ess.wdp.IPrivateAPPView for more details
private final IPrivateAPPView wdThis;
Root node of this controller's context. </p>
Provides typed access not only to the elements of the root node
but also to all nodes in the context (methods node<i>XYZ</i>())
and their currently selected element (methods current<i>XYZ</i>Element()).
It also facilitates the creation of new elements for all nodes
(methods create<i>XYZ</i>Element()). </p>
@see com.gmr.ess.wdp.IPrivateAPPView.IContextNode for more details.
private final IPrivateAPPView.IContextNode wdContext;
A shortcut for <code>wdThis.wdGetAPI()</code>. </p>
Represents the generic API of the generic Web Dynpro counterpart
for this controller. </p>
private final com.sap.tc.webdynpro.progmodel.api.IWDViewController wdControllerAPI;
A shortcut for <code>wdThis.wdGetAPI().getComponent()</code>. </p>
Represents the generic API of the Web Dynpro component this controller
belongs to. Can be used to access the message manager, the window manager,
to add/remove event handlers and so on. </p>
private final com.sap.tc.webdynpro.progmodel.api.IWDComponent wdComponentAPI;
public APPView(IPrivateAPPView wdThis)
this.wdThis = wdThis;
this.wdContext = wdThis.wdGetContext();
this.wdControllerAPI = wdThis.wdGetAPI();
this.wdComponentAPI = wdThis.wdGetAPI().getComponent();
//@@begin javadoc:wdDoInit()
/** Hook method called to initialize controller. */
//@@end
public void wdDoInit()
//@@begin wdDoInit()
try{
IWDMessageManager manager1 = wdComponentAPI.getMessageManager();
IWDClientUser user = WDClientUser.getLoggedInClientUser();
String logUser= user.getSAPUser().getUniqueName();
wdContext.currentContextElement().setUserid(logUser);
wdThis.wdGetAPPController().executeBapi_Employee_Getdata_Input();//Returns the user id for the employee
Collection nomineeList = new ArrayList();
wdThis.wdGetAPPController(). executeZ_Hrfm_Nominee_Disp_Input( );
int nomineeTableSize = wdContext.nodeZ_Hrfm_Nominee_Disp_Input().nodeOutput_Nominee().nodeNominee().size();
for(int i=0;i< nomineeTableSize;i++){
IPrivateAPPView.IDisplay_table_nodeElement ele = wdContext.nodeDisplay_table_node().createDisplay_table_nodeElement();
ele.setAddr(wdContext.nodeZ_Hrfm_Nominee_Disp_Input().nodeOutput_Nominee().nodeNominee().getNomineeElementAt(i).getAddr());
ele.setDob(wdContext.nodeZ_Hrfm_Nominee_Disp_Input().nodeOutput_Nominee().nodeNominee().getNomineeElementAt(i).getDob());
ele.setGuard(wdContext.nodeZ_Hrfm_Nominee_Disp_Input().nodeOutput_Nominee().nodeNominee().getNomineeElementAt(i).getGuard());
ele.setName(wdContext.nodeZ_Hrfm_Nominee_Disp_Input().nodeOutput_Nominee().nodeNominee().getNomineeElementAt(i).getName());
ele.setPerc(wdContext.nodeZ_Hrfm_Nominee_Disp_Input().nodeOutput_Nominee().nodeNominee().getNomineeElementAt(i).getPerc());
ele.setRelat(wdContext.nodeZ_Hrfm_Nominee_Disp_Input().nodeOutput_Nominee().nodeNominee().getNomineeElementAt(i).getRelat());
nomineeList.add(ele);
wdContext.nodeDisplay_table_node().bind(nomineeList);
wdContext.currentContextElement().setEdit_val_attr(true);
if(nomineeTableSize<=0){
wdContext.currentContextElement().setCreateButtonEnable(true);
wdContext.currentContextElement().setEditButtonEnable(false);
else{
wdContext.currentContextElement().setCreateButtonEnable(false);
wdContext.currentContextElement().setEditButtonEnable(true);
catch(Exception e){
wdComponentAPI.getMessageManager().reportException("",true);
//@@end
//@@begin javadoc:wdDoExit()
/** Hook method called to clean up controller. */
//@@end
public void wdDoExit()
//@@begin wdDoExit()
//@@end
//@@begin javadoc:wdDoModifyView
Hook method called to modify a view just before rendering.
This method conceptually belongs to the view itself, not to the
controller (cf. MVC pattern).
It is made static to discourage a way of programming that
routinely stores references to UI elements in instance fields
for access by the view controller's event handlers, and so on.
The Web Dynpro programming model recommends that UI elements can
only be accessed by code executed within the call to this hook method.
@param wdThis Generated private interface of the view's controller, as
provided by Web Dynpro. Provides access to the view controller's
outgoing controller usages, etc.
@param wdContext Generated interface of the view's context, as provided
by Web Dynpro. Provides access to the view's data.
@param view The view's generic API, as provided by Web Dynpro.
Provides access to UI elements.
@param firstTime Indicates whether the hook is called for the first time
during the lifetime of the view.
//@@end
public static void wdDoModifyView(IPrivateAPPView wdThis, IPrivateAPPView.IContextNode wdContext, com.sap.tc.webdynpro.progmodel.api.IWDView view, boolean firstTime)
//@@begin wdDoModifyView
//@@end
//@@begin javadoc:onActionGetData(ServerEvent)
/** Declared validating event handler. */
//@@end
public void onActionGetData(com.sap.tc.webdynpro.progmodel.api.IWDCustomEvent wdEvent )
//@@begin onActionGetData(ServerEvent)
//$$begin ActionButton(-535519310)
//wdThis.wdGetAPPController().executeZ_Hrfm_Nominee_Disp_Input();
//$$end
//@@end
//@@begin javadoc:onActionEdit(ServerEvent)
/** Declared validating event handler. */
//@@end
public void onActionEdit(com.sap.tc.webdynpro.progmodel.api.IWDCustomEvent wdEvent )
//@@begin onActionEdit(ServerEvent)
//$$begin ActionButton(-535519310)
displayTablesize=wdContext.nodeDisplay_table_node().size();
if(displayTablesize<5){
for(int i=0;i<size-displayTablesize;i++){
IPrivateAPPView.IDisplay_table_nodeElement ele = wdContext.nodeDisplay_table_node().createDisplay_table_nodeElement();
wdContext. nodeDisplay_table_node().addElement(ele);
operation="MOD";
wdContext.currentContextElement().setTableReadOnly(true);
wdContext.currentZ_Hrfm_Nominee_Ins_Mod_InputElement().setOperation(operation);
//$$end
//@@end
//@@begin javadoc:onActionCreate(ServerEvent)
/** Declared validating event handler. */
//@@end
public void onActionCreate(com.sap.tc.webdynpro.progmodel.api.IWDCustomEvent wdEvent )
//@@begin onActionCreate(ServerEvent)
int month=0,year=0,day=0;
String month1,day1,year1;
try{
displayTablesize=wdContext.nodeDisplay_table_node().size();
wdContext.currentContextElement().setEdit_val_attr(false);
if(wdContext.nodeDisplay_table_node().isEmpty()){
if(displayTablesize<5){
Calendar cal=Calendar.getInstance();
month=cal.get(Calendar.MONTH)+1;
if(month==1||month==2||month==3||month==4||month==5||month==6||month==7||month==8||month==9){
month1="0"+month;
else{
month1=""+month;
day = cal.get(Calendar.DAY_OF_MONTH);
if(day==1||day==2||day==3||day==4||day==5||day==6||day==7||day==8||day==9){
day1= "0"+day;
else{
day1=""+day;
year = cal.get(Calendar.YEAR);
year1=""+year;
String strFormat=day1"."month1"."year1;
wdContext.currentOutput_NomineeElement().setBegda(strFormat);
wdContext.currentOutput_NomineeElement().setEndda("31.12.9999");
for(int i=0;i<size-displayTablesize;i++){
IPrivateAPPView.IDisplay_table_nodeElement ele = wdContext.nodeDisplay_table_node().createDisplay_table_nodeElement();
wdContext. nodeDisplay_table_node().addElement(ele);
operation="INS";
wdContext.currentZ_Hrfm_Nominee_Ins_Mod_InputElement().setOperation(operation);
wdContext.currentContextElement().setTableReadOnly(true);
catch(NullPointerException npe){
wdComponentAPI.getMessageManager().reportException("No Data Available",true);
//@@end
//@@begin javadoc:onActionSaveData(ServerEvent)
/** Declared validating event handler. */
//@@end
public void onActionSaveData(com.sap.tc.webdynpro.progmodel.api.IWDCustomEvent wdEvent )
//@@begin onActionSaveData(ServerEvent)
float percentage=0;
float dupePercentage=0;
boolean isTest = false;
Collection DispTList = new ArrayList();
IWDMessageManager manager1 = wdComponentAPI.getMessageManager();
try{
displayTablesize = wdContext.nodeDisplay_table_node().size();
//for(int i=1;i<=displayTablesize;i++){
for(int i=0;i<displayTablesize;i++){
BigDecimal share = wdContext.nodeDisplay_table_node().getDisplay_table_nodeElementAt(i).getPerc();
String name = wdContext.nodeDisplay_table_node().getDisplay_table_nodeElementAt(i).getName();
percentage = share.floatValue();
dupePercentage = dupePercentage + percentage;
if(name!=null && share!=null){
Zst_Hr_Nominee nominee = new Zst_Hr_Nominee();
nominee.setAddr(wdContext.nodeDisplay_table_node().getDisplay_table_nodeElementAt(i).getAddr());
manager1.reportSuccess(wdContext.nodeDisplay_table_node().getDisplay_table_nodeElementAt(i).getAddr());
nominee.setDob(wdContext.nodeDisplay_table_node().getDisplay_table_nodeElementAt(i).getDob());
manager1.reportSuccess(""+wdContext.nodeDisplay_table_node().getDisplay_table_nodeElementAt(i).getDob());
nominee.setGuard(wdContext.nodeDisplay_table_node().getDisplay_table_nodeElementAt(i).getGuard());
manager1.reportSuccess(""+wdContext.nodeDisplay_table_node().getDisplay_table_nodeElementAt(i).getGuard());
nominee.setName(wdContext.nodeDisplay_table_node().getDisplay_table_nodeElementAt(i).getName());
manager1.reportSuccess(""+wdContext.nodeDisplay_table_node().getDisplay_table_nodeElementAt(i).getName());
nominee.setPerc(wdContext.nodeDisplay_table_node().getDisplay_table_nodeElementAt(i).getPerc());
manager1.reportSuccess(""+wdContext.nodeDisplay_table_node().getDisplay_table_nodeElementAt(i).getPerc());
nominee.setRelat(wdContext.nodeDisplay_table_node().getDisplay_table_nodeElementAt(i).getRelat());
manager1.reportSuccess(""+wdContext.nodeDisplay_table_node().getDisplay_table_nodeElementAt(i).getRelat());
DispTList.add(nominee);
wdContext.nodeZ_Hrfm_Nominee_Ins_Mod_Input().nodeNominee_ins().bind(DispTList);
if((dupePercentage)!=100)
wdComponentAPI.getMessageManager().reportException(
"The sum of the share Percentages is not 100. Modify the percentages accordingly",true);
wdContext.nodeZ_Hrfm_Nominee_Ins_Mod_Input().nodeNominee_ins().bind(DispTList);
IWDMessageManager manager = wdComponentAPI.getMessageManager();
String beginDate = wdContext.currentOutput_NomineeElement().getBegda();
manager.reportSuccess(wdContext.currentOutput_NomineeElement().getBegda());
String endDate=wdContext.currentOutput_NomineeElement().getEndda();
manager.reportSuccess(wdContext.currentOutput_NomineeElement().getEndda());
wdContext.currentZ_Hrfm_Nominee_Ins_Mod_InputElement().setBegda(beginDate);
wdContext.currentZ_Hrfm_Nominee_Ins_Mod_InputElement().setEndda(endDate);
wdContext.currentZ_Hrfm_Nominee_Ins_Mod_InputElement().setOperation(operation);
wdComponentAPI.getMessageManager().reportSuccess(operation);
wdThis.wdGetAPPController().executeBapi_Employee_Getdata_Input();
wdThis.wdGetAPPController().executeZ_Hrfm_Nominee_Ins_Mod_Input();
//wdContext.currentContextElement().setTableReadOnly(false);
catch(Exception e){
e.getMessage();
//@@end
The following code section can be used for any Java code that is
not to be visible to other controllers/views or that contains constructs
currently not supported directly by Web Dynpro (such as inner classes or
member variables etc.). </p>
Note: The content of this section is in no way managed/controlled
by the Web Dynpro Designtime or the Web Dynpro Runtime.
//@@begin others
int nomineeTableSize = 0;
int displayTablesize = 0;
String operation= null;
int size=5;
// float dupePercentage=0;
//String mod_op="MOD";
//@@end
content of obsolete user coding area(s) -
//@@begin obsolete:javadoc:onActionSave(ServerEvent)
// /** Declared validating even
Component controller code
// This file has been generated partially by the Web Dynpro Code Generator.
// MODIFY CODE ONLY IN SECTIONS ENCLOSED BY @@begin AND @@end.
// ALL OTHER CHANGES WILL BE LOST IF THE FILE IS REGENERATED.
package com.gmr.ess;
// IMPORTANT NOTE:
// ALL IMPORT STATEMENTS MUST BE PLACED IN THE FOLLOWING SECTION ENCLOSED
// BY @@begin imports AND @@end. FURTHERMORE, THIS SECTION MUST ALWAYS CONTAIN
// AT LEAST ONE IMPORT STATEMENT (E.G. THAT FOR IPrivateAPP).
// OTHERWISE, USING THE ECLIPSE FUNCTION "Organize Imports" FOLLOWED BY
// A WEB DYNPRO CODE GENERATION (E.G. PROJECT BUILD) WILL RESULT IN THE LOSS
// OF IMPORT STATEMENTS.
//@@begin imports
import java.util.Iterator;
import com.gmr.ess.wdp.IPrivateAPP;
import com.gmr.pck.Bapi_Employee_Getdata_Input;
import com.gmr.pck.Bapip0002B;
import com.gmr.pck.Z_Hrfm_Nominee_Disp_Input;
import com.gmr.pck.Z_Hrfm_Nominee_Ins_Mod_Input;
import com.gmr.pck.Zst_Hr_Nominee;
import com.sap.lcr.api.util.SetProfileConnect;
import com.sap.tc.webdynpro.modelimpl.dynamicrfc.WDDynamicRFCExecuteException;
import com.sap.tc.webdynpro.progmodel.api.IWDMessageManager;
//@@end
//@@begin documentation
//@@end
public class APP
Logging location.
private static final com.sap.tc.logging.Location logger =
com.sap.tc.logging.Location.getLocation(APP.class);
static
//@@begin id
String id = "$Id$";
//@@end
com.sap.tc.logging.Location.getLocation("ID.com.sap.tc.webdynpro").infoT(id);
Private access to the generated Web Dynpro counterpart
for this controller class. </p>
Use <code>wdThis</code> to gain typed access to the context,
to trigger navigation via outbound plugs, to get and enable/disable
actions, fire declared events, and access used controllers and/or
component usages.
@see com.gmr.ess.wdp.IPrivateAPP for more details
private final IPrivateAPP wdThis;
Root node of this controller's context. </p>
Provides typed access not only to the elements of the root node
but also to all nodes in the context (methods node<i>XYZ</i>())
and their currently selected element (methods current<i>XYZ</i>Element()).
It also facilitates the creation of new elements for all nodes
(methods create<i>XYZ</i>Element()). </p>
@see com.gmr.ess.wdp.IPrivateAPP.IContextNode for more details.
private final IPrivateAPP.IContextNode wdContext;
A shortcut for <code>wdThis.wdGetAPI()</code>. </p>
Represents the generic API of the generic Web Dynpro counterpart
for this controller. </p>
private final com.sap.tc.webdynpro.progmodel.api.IWDComponent wdControllerAPI;
A shortcut for <code>wdThis.wdGetAPI().getComponent()</code>. </p>
Represents the generic API of the Web Dynpro component this controller
belongs to. Can be used to access the message manager, the window manager,
to add/remove event handlers and so on. </p>
private final com.sap.tc.webdynpro.progmodel.api.IWDComponent wdComponentAPI;
public APP(IPrivateAPP wdThis)
this.wdThis = wdThis;
this.wdContext = wdThis.wdGetContext();
this.wdControllerAPI = wdThis.wdGetAPI();
this.wdComponentAPI = wdThis.wdGetAPI().getComponent();
//@@begin javadoc:wdDoInit()
/** Hook method called to initialize controller. */
//@@end
public void wdDoInit()
//@@begin wdDoInit()
//$$begin Service Controller(1490375209)
// wdContext.nodeZ_Hrfm_Nominee_Ins_Mod_Input().bind(new Z_Hrfm_Nominee_Ins_Mod_Input());
Z_Hrfm_Nominee_Ins_Mod_Input input = new Z_Hrfm_Nominee_Ins_Mod_Input();
input.addNominee(new Zst_Hr_Nominee());
wdContext.nodeZ_Hrfm_Nominee_Ins_Mod_Input().bind(input);
//$$end
//$$begin Service Controller(-932523997)
wdContext.nodeZ_Hrfm_Nominee_Disp_Input().bind(new Z_Hrfm_Nominee_Disp_Input());
//$$end
//$$begin Service Controller(-368783613)
wdContext.nodeBapi_Employee_Getdata_Input().bind(new Bapi_Employee_Getdata_Input());
//$$end
//@@end
//@@begin javadoc:wdDoExit()
/** Hook method called to clean up controller. */
//@@end
public void wdDoExit()
//@@begin wdDoExit()
//@@end
//@@begin javadoc:wdDoPostProcessing()
Hook called to handle data retrieval errors before rendering.
After doModifyView(), the Web Dynpro Framework gets all context data needed
for rendering by validating the contexts (which in turn calls the supply
functions and supplying relation roles). In this hook, the application
should handle the errors which occurred during validation of the contexts.
Using preorder depth-first traversal, this hook is called for all component
controllers starting with the current root component.
Permitted operations:
- Flushing model queue
- Creating messages
- Reading context and model data
Forbidden operations:
- Invalidating model data
- Manipulating the context
- Firing outbound plugs
- Creating components
@param isCurrentRoot true if this is the root of the current request
//@@end
public void wdDoPostProcessing(boolean isCurrentRoot)
//@@begin wdDoPostProcessing()
//@@end
//@@begin javadoc:wdDoBeforeNavigation()
Hook before the navigation phase starts.
This hook allows you to flush the model queue and handle any
errors that occur. Firing outbound plugs is allowed in this hook.
Using preorder depth-first traversal, this hook is called for all component
controllers starting with the current root component.
@param isCurrentRoot true if this is the root of the current request
//@@end
public void wdDoBeforeNavigation(boolean isCurrentRoot)
//@@begin wdDoBeforeNavigation()
//@@end
//@@begin javadoc:wdDoApplicationStateChange()
Hook that informs the application about a state change.
<p>
This hook is called e.g. to tell the application that will be
<ul>
<li>left via a suspend plug and therefore should go into a suspend/sleep
mode with minimal need of resources. errors that occur. Firing
outbound plugs is allowed in this hook.
<li>left due to a timeout and could write it's state to a data base if the
user comes back later on
</ul>
The concrete reason is available via IWDApplicationStateChangeInfo
<p>
<b>Important</b>: This hook is called for the top level component only!
@param stateChangeInfo contains the information about the nature of the state change
@param stateChangeReturn allows the application to ask for a different state change.
The framework is allowed to ignore it considering i.e. the current resources situation.
//@@end
public void wdDoApplicationStateChange(com.sap.tc.webdynpro.progmodel.api.IWDApplicationStateChangeInfo stateChangeInfo, com.sap.tc.webdynpro.progmodel.api.IWDApplicationStateChangeReturn stateChangeReturn)
//@@begin wdDoApplicationStateChange()
//@@end
//@@begin javadoc:executeBapi_Employee_Getdata_Input()
/** Declared method. */
//@@end
public void executeBapi_Employee_Getdata_Input( )
//@@begin executeBapi_Employee_Getdata_Input()
//$$begin Service Controller(1705750894)
IWDMessageManager manager = wdComponentAPI.getMessageManager();
Iterator itrGetData = null;
Bapip0002B out = null;
try
wdContext.currentBapi_Employee_Getdata_InputElement().modelObject().execute();
wdContext.nodeOutput().invalidate();
itrGetData = wdContext.currentOutputElement().modelObject().getPersonal_Data().iterator();
while (itrGetData.hasNext()) {
out = (Bapip0002B) itrGetData.next();
empNo = out.getPerno();
wdContext.currentZ_Hrfm_Nominee_Disp_InputElement().setPernr(empNo);
wdContext.currentZ_Hrfm_Nominee_Ins_Mod_InputElement().setPernr(empNo);
// manager.reportSuccess(empNo);
//wdThis.executeZ_Hrfm_Nominee_Disp_Input();
catch(WDDynamicRFCExecuteException e)
manager.reportException(e.getMessage(), false);
//$$end
//@@end
//@@begin javadoc:executeZ_Hrfm_Nominee_Disp_Input()
/** Declared method. */
//@@end
public void executeZ_Hrfm_Nominee_Disp_Input( )
//@@begin executeZ_Hrfm_Nominee_Disp_Input()
//$$begin Service Controller(-366407911)
IWDMessageManager manager = wdComponentAPI.getMessageManager();
try
wdContext.currentZ_Hrfm_Nominee_Disp_InputElement().modelObject().execute();
wdContext.nodeOutput_Nominee().invalidate();
catch(WDDynamicRFCExecuteException e)
manager.reportException(e.getMessage(), false);
//$$end
//@@end
//@@begin javadoc:executeZ_Hrfm_Nominee_Ins_Mod_Input()
/** Declared method. */
//@@end
public void executeZ_Hrfm_Nominee_Ins_Mod_Input( )
//@@begin executeZ_Hrfm_Nominee_Ins_Mod_Input()
//$$begin Service Controller(1524028406)
IWDMessageManager manager = wdComponentAPI.getMessageManager();
try
wdContext.currentZ_Hrfm_Nominee_Ins_Mod_InputElement().modelObject().execute();
wdContext.nodeOutput_nominee_ins_mod().invalidate();
catch(WDDynamicRFCExecuteException e)
manager.reportException(e.getMessage(), false);
//$$end
//@@end
The following code section can be used for any Java code that is
not to be visible to other controllers/views or that contains constructs
currently not supported directly by Web Dynpro (such as inner classes or
member variables etc.). </p>
Note: The content of this section is in no way managed/controlled
by the Web Dynpro Designtime or the Web Dynpro Runtime.
//@@begin others
String empNo = null;
//@@end
Suman
Edited by: sumankumar kurimilla on Dec 23, 2008 9:26 AMHi,
I have checked from RFC side that is working fine only java app its not working can you tell any thing needs to be changed from my application end.
Please check in Savedata action.
Regards,
Suman
Edited by: sumankumar kurimilla on Dec 23, 2008 11:01 AM -
How to call the screen in methods could u please explain
hi,
how to call the screen in methods could u please explain clearly with exampleHI ,
CALL SCREEN - Call a screen
Basic form
CALL SCREEN scr.
Addition:
... STARTING AT x1 y1 ... ENDING AT x2 y2
Effect
Calls the screen scr; scr is the number of a screen of the main program. You use SET SCREEN 0. or LEAVE SCREEN. to define the return from the CALL screen.
Note
Please consult Data Area and Modularization Unit Organization documentation as well.
Addition
... STARTING AT x1 y1 ENDING AT x2 y2
Effect
The coordinates x1, y1 (start column and start line in the window) and x2, y2 (end column and end line in the window) define the size and position of the CALL screen ("top left - bottom right"). Besides these coordinates, you can also see the contents of the primary window, but cannot perform any action there.
Note
If "ENDING AT ..." is not specified, suitable values are substituted for x2 and y2, taking into account the size of the called screen.
Exceptions
Non-Catchable Exceptions
Cause: No further screen level (call screen); the maximum number of nested screen levels is restricted to 50 at present.
Runtime Error: DYNP_TOO_MANY_CALL_SCREENS
THX -
Server error when calling the DatabaseController.replaceConnection() method
<p>I am receiving the error message below when calling the DatabaseController.replaceConnection() method. Can anyone tell me what may be the cause of this? The code being executed is below the error message.
</p>
<p>
Thank you.
</p>
<pre>
A server error occured while processing the CrystalReport object, wfr.rpt (AVTJyRKrfDxKtXX31l5E9Ek), from the CMS.
Unable to connect to the server: ATHENA.ReportApplicationServer.
--- java.lang.Boolean cannot be cast to java.lang.String
Stack Trace:
com.crystaldecisions.sdk.occa.report.lib.ReportSDKServerException: Unable to connect to the server:
ATHENA.ReportApplicationServer. - java.lang.Boolean cannot be cast to java.lang.String--
Error code:-2147217387 Error code name:connectServer
at com.crystaldecisions.sdk.occa.report.lib.ReportSDKServerException.
throwReportSDKServerException(Unknown Source)
at com.crystaldecisions.sdk.occa.managedreports.ras.internal.CECORBACommunicationAdapter.
request(Unknown Source)
at com.crystaldecisions.proxy.remoteagent.y.a(Unknown Source)
at com.crystaldecisions.proxy.remoteagent.r.a(Unknown Source)
at com.crystaldecisions.sdk.occa.report.application.cf.a(Unknown Source)
at com.crystaldecisions.sdk.occa.report.application.DatabaseController.replaceConnection(Unknown Source)
at aiConfigUtility.cmdlline.ImportExportBiarFile.changeReportDataSource(ImportExportBiarFile.java:561)
at aiConfigUtility.cmdlline.ImportExportBiarFile.processBiarFile(ImportExportBiarFile.java:726)
</pre>
<br />
<pre>
private void test(String reportName)
throws SDKException, ReportSDKException, java.io.IOException
IInfoObjects newInfoObjects;
IInfoObject reportObj;
ReportClientDocument clientDoc = new ReportClientDocument();
DatabaseController dc;
PropertyBag pBag;
PropertyBag logonProps;
ConnectionInfo newConInfo;
ConnectionInfo oldConInfo;
ConnectionInfos conInfos;
int connOptions = DBOptions._ignoreCurrentTableQualifiers + DBOptions._doNotVerifyDB; //0;
Fields connFields = null;
String queryStr = "Select * From CI_INFOOBJECTS " +
"Where SI_NAME='wfr.rpt' AND SI_KIND='CrystalReport' AND SI_INSTANCE=0";
newInfoObjects = getCms().executeQuery(queryStr);
if(newInfoObjects.size() > 0)
reportObj = (IInfoObject)newInfoObjects.get(0);
try
clientDoc = getCms().getReportAppFactory().openDocument(
reportObj
, OpenReportOptions._refreshRepositoryObjects
, java.util.Locale.US);
dc = clientDoc.getDatabaseController();
conInfos = dc.getConnectionInfos(null);
for(int i = 0; i < conInfos.size(); ++i)
oldConInfo = (ConnectionInfo)conInfos.getConnectionInfo(i);
newConInfo = (ConnectionInfo)oldConInfo.clone(true);
pBag = newConInfo.getAttributes();
pBag.putStringValue("QE_ServerDescription", "alio");
logonProps = new PropertyBag();
logonProps.putStringValue("Trusted_Connection", "false");
logonProps.putStringValue("Server", "alio");
pBag.put("QE_LogonProperties", logonProps);
newConInfo.setUserName("admin");
newConInfo.setPassword("password");
<b>dc.replaceConnection(
oldConInfo
, newConInfo
, connFields
, connOptions);</b>
catch(ReportSDKServerException Ex)
String msg = "A server error occured while processing the " + reportObj.getKind()
+ " object, " + reportObj.getTitle() + " (" + reportObj.getCUID() + "), from the CMS.";
Utility.errorOut(msg, Ex);
catch(Exception Ex)
String msg = "An error occured while processing the " + reportObj.getKind()
+ " object, " + reportObj.getTitle() + " (" + reportObj.getCUID() + "), from the CMS.";
Utility.errorOut(msg, Ex);
finally
clientDoc.save();
getCms().commitToInfoStore(newInfoObjects);
clientDoc.close();
</pre>
Edited by: Mark Young on Sep 10, 2009 2:13 PM<p>I just wanted to provide an update to this. I did find a work-around for this, but I cannot explain it. The post I added to a related thread on 23 Sept. 2009, Trying to change the data source for a Crystal Report. (thread 1472257), explains a work-around I found for that problem. It seemed to resolve this one simultaneously.
</p>
<p>
I don't know why it works. If anyone has a comment or some insight, it is welcome. Thank you in advance.
</p> -
How to call the backing bean method through javascript by closing window?
Hi all,
What I want to do is:
I open a new page by clicking <t:commanLink.../> from the first page. Then I close the new page. By closing the new page I will call a function in the backing bean such as myBean.doSomething() to do something. Such like:
<body onUnload=jsFunction()..../>
...So far I understand, I should write following code
in my second page:
<html>
<head>
<script type="txet/javascript">
function jsFunction()
{>
ocument.forms[0].action="#{myBean.doSomething}";
document.forms[0].submit();
</scrip>
</head>
<body onunload="jsFunction()">
<ui:composition>
<h:form id="myForm">
<t:commandLink id="myLink" immediate="true"
action="#{myBean.doSomething}"
value=""></t:commandLink>
</h:form>
</ui:composition>
Is that right? I am not sure if I've the javascript
in the right position.I am sorry! That solution will not work. My Bad.
You can try this.
1) Have a invisible command button on your first page with the action attribute set to "#{myBean.doSomething}" as below
<t:commandButton style="width:0px;height:0px" id="myButton" immediate="true"
action="#{myBean.doSomething}"
value=""></t:commandButton>2) Your JS onunload method on the second page should look like
<script type="txet/javascript">
function jsFunction()
var buttonObject= window.parent.document.getElementById("formname:myButton");
buttonObject.click(); // This would help in submitting the first page
// to submit to the needed action method
</script>Karthik -
Can a client call the ejb callback methods directly????
Is there any way using which client can call the ejb callback methods directly.
ie in the client program i want to call ejbPassivate/ejbActivate?? is there any way of doing the sameshort answer: yes, pass a reference of the ejb (bean class) to the client. This will not do what you expect however and hopefully with generate an error that you should read as "don't do this".
better answer: you are no longer doing ejb development if you do this. those methods exists for the container to interact with your bean and are NOT meant for clients. You should NEVER do what I suggest in my "short answer". -
Unable to Call page using action
Hi Evryone,
I am getting a simple problem .
Trying to call xsql page using adfc-config file. in xsql file i am passing two bind params for this using one input page to pass parameter.
Like
in report.jspx i have to employeeID and Name my textboxes and command button for call the xsql file.
1.repot.jspx
2.employee.xsql.
3.adfc-config.xml
in adfc-confing.xml i am taken two views and assigned these two pages(jspx,xsql) for ths flow name given report.
In my button action given
<af:commandbutton action="report">
When i run this report.jspx i am able to view the report. Here dont have a problem.
When i tried using menu i am unable to view the report.
in menu i am using af:goLink destination="/faces/report.jspx">. I view the report page after click on the button it wont call the adfc-config. Why if i try to run single page i am able to pass parameter and action will be taken. I will get the report .
Is there any changes i have to do
TIAAn xsql page is not a JSF page and won't be able to navigate with navigation rules defined in the adfc-config.xml
Only JSF pages can navigate using those rules.
To navigate from one page to the other use a commandLink or commandButton and set the action to the name of the navigation rule.
To run open adfc-config.xml and right click on a view activity to choose run. -
JSF seems to not call a simple action method
I have a situation where it seems JSF is not performing one of it's basic functions--calling an action method in a backing bean based on a simple JSF EL expression.
Here's the relevant part of my JSP (the h:subview tags are there because another JSP includes this one):
-- my.jsp: ------------------------------------------------------------
<%@ page language="java" %>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<f:subview id="work-area">
<h:form id="peers-work">
<h:commandButton id="edit" value="Edit" action="#{peerBean.edit}" styleClass="actionButton" />
</h:form>
</f:subview>
--------------------------------------------------------------My faces-config.xml defines the "peerBean" as follows:
-- faces-config.xml: ------------------------------------------------------------
<faces-config>
<managed-bean>
<description>Session bean for performing Peer operations.</description>
<managed-bean-name>peerBean</managed-bean-name>
<managed-bean-class>com.myApp.PeerBean</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
<navigation-rule>
<from-view-id>/my.jsp</from-view-id>
<navigation-case>
<from-outcome>success</from-outcome>
<to-view-id>/editPeer.jsp</to-view-id>
</navigation-case>
<navigation-case>
<from-outcome>fail</from-outcome>
<to-view-id>/error.jsp</to-view-id>
</navigation-case>
</navigation-rule>
</faces-config>
--------------------------------------------------------------And here's the action method in PeerBean:
-- PeerBean.java ----------------------------------------
public class PeerBean extends BaseBean implements Serializable {
public PeerBean() {
public String edit() {
logger.debug("in edit().");
Peer peer = this.getPeer(this.getId() );
String outcome = "success"; // optimism!
if (peer == null) {
outcome = "fail";
} else {
this.setId(peer.getId() );
this.setName(peer.getName() );
this.setDescription(peer.getDescription() );
return outcome;
--------------------------------------------------------------It compiles and runs fine, but when I click on the "Edit" button in my.jsp, the page submits but never enters the "edit" method (based on the fact that the logger call in the method does not write anything to the log.), and it simply re-displays my.jsp (even though it should go to the "success" or "fail" page, according to the navigation rules). I see a bunch of debug messages in the logs from the code that loads the page, but no indication that the edit method is touched. There are no stack traces or errors reported in any of the logs that Tomcat creates for this application.
Elsewhere in my application, I am able to use commandButton elements to trigger backing bean actions just like I'm trying to do above, and in other places it works fine. I don't know why the above case does not work.
Also, is there a way to put JSF in a debug mode that shows info such as the navigation outcome processing, JSF EL processing, etc.?
Any help would be appreciated!
Thanks,
ScottI see. Thanks for the response.
I already have message and messages tag in the JSF, but no error message is displayed. Also, there is no error message in the tomcat log.
I actually found your tutorial ( http://balusc.blogspot.com/2008/01/jsf-tutorial-with-eclipse-and-tomcat.html ) yesterday, so when I saw your response, your name looked familiar but I did not immediately remember why. I Will be going through the tutorial now.
My application goes as far as the INVOKE APPLICATION phase, but never enters/executes the action method, can anyone please suggest any reason that could be the cause.
Please see code below:
JSF - status.jsp
============
<%@ page language="java" contentType="text/html;charset=UTF-8"%>
<%@ taglib prefix="f" uri="http://java.sun.com/jsf/core"%>
<%@ taglib prefix="h" uri="http://java.sun.com/jsf/html"%>
<f:loadBundle basename="com.fujimitsu.moneytransfer.resources.UIResources" var="bundle"/>
<html>
<f:view>
<head>
<title><h:outputText value="#{bundle.registerStatus}"/> </title>
<link href="../css/stylesheet.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<f:verbatim><p>JavaServer Faces Page</p>
<p>
</p><table border="0" cellpadding="0" cellspacing="0" width="800">
<tr>
<td>
<h:graphicImage url="/images/resources.jpg" alt="#{bundle.img_alt_info}"/>
</td>
</tr>
<tr>
<td>
<h:messages globalOnly="false" styleClass="validationMessage" layout="table"/>
<p>
<h:form id="statusManagedBeanForm">
<h:panelGrid columns="3">
<h:outputText value="#{bundle['statusField.status']}"/>
<h:inputText id="status" value="#{statusManagedBean.status}"/>
<h:message for="status" styleClass="validationMessage"/>
<h:outputText value="#{bundle['statusDescField.statusDesc']}"/>
<h:inputText id="statusDesc" value="#{statusManagedBean.statusDesc}"/>
<h:message for="statusDesc" styleClass="validationMessage"/>
<h:outputText value="Created By:"/>
<h:inputText id="createdBy" binding="#{statusManagedBean.createdBy}"/>
<h:message for="createdBy" styleClass="validationMessage"/>
</h:panelGrid>
<h:commandButton action="#{statusManagedBean.createStatusAction}" type="submit" value="Submit"/>
</h:form>
</p>
</td>
</tr>
</table>
</f:verbatim>
</body>
</f:view>
</html>
HTML code of status.jsp before the submit button is clicked
===========================================
<form id="statusManagedBeanForm" name="statusManagedBeanForm" method="post" action="/moneytransferFaces/pages/status.jsf" enctype="application/x-www-form-urlencoded">
<input type="hidden" name="statusManagedBeanForm" value="statusManagedBeanForm" />
<table>
<tbody>
<tr>
<td>Status</td>
<td><input id="statusManagedBeanForm:status" type="text" name="statusManagedBeanForm:status" /></td>
<td></td>
</tr>
<tr>
<td>Status Desc</td>
<td><input id="statusManagedBeanForm:statusDesc" type="text" name="statusManagedBeanForm:statusDesc" /></td>
<td></td>
</tr>
<tr>
<td>Created By:</td>
<td><input id="statusManagedBeanForm:createdBy" type="text" name="statusManagedBeanForm:createdBy" /></td>
<td></td>
</tr>
</tbody>
</table>
<input type="submit" name="statusManagedBeanForm:j_id_jsp_948632549_16" value="Submit" /><input type="hidden" name="javax.faces.ViewState" id="javax.faces.ViewState" value="j_id4:j_id5" />
</form>
HTML code of status.jsp after the submit button is clicked
==========================================
Please note: action="/moneytransferFaces/pages/status.jsf" , is this what it is supposed to be?
<form id="statusManagedBeanForm" name="statusManagedBeanForm" method="post" action="/moneytransferFaces/pages/status.jsf" enctype="application/x-www-form-urlencoded">
<input type="hidden" name="statusManagedBeanForm" value="statusManagedBeanForm" />
<table>
<tbody>
<tr>
<td>Status</td>
<td><input id="statusManagedBeanForm:status" type="text" name="statusManagedBeanForm:status" /></td>
<td></td>
</tr>
<tr>
<td>Status Desc</td>
<td><input id="statusManagedBeanForm:statusDesc" type="text" name="statusManagedBeanForm:statusDesc" /></td>
<td></td>
</tr>
<tr>
<td>Created By:</td>
<td><input id="statusManagedBeanForm:createdBy" type="text" name="statusManagedBeanForm:createdBy" /></td>
<td></td>
</tr>
</tbody>
</table>
<input type="submit" name="statusManagedBeanForm:j_id_jsp_948632549_16" value="Submit" /><input type="hidden" name="javax.faces.ViewState" id="javax.faces.ViewState" value="j_id1:j_id3" />
</form>
STATUS BEAN
===========
package com.fujimitsu.moneytransfer.beans;
import javax.faces.component.html.HtmlInputText;
public class Status {
private String status;
private String statusDesc;
private HtmlInputText createdBy;
public Status() {
public HtmlInputText getCreatedBy() {
return createdBy;
public void setCreatedBy(HtmlInputText createdBy) {
this.createdBy = createdBy;
public String getStatus() {
return status;
public void setStatus(String status) {
this.status = status;
public String getStatusDesc() {
return statusDesc;
public void setStatusDesc(String statusDesc) {
this.statusDesc = statusDesc;
public String createStatusAction() {
this.setStatusDesc("testing createStatusAction()...");
return "success";
FACES CONFIG
============
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright 2003 Sun Microsystems, Inc. All rights reserved.
SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
-->
<!DOCTYPE faces-config PUBLIC
"-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.0//EN"
"http://java.sun.com/dtd/web-facesconfig_1_0.dtd">
<faces-config>
<application>
<locale-config>
<default-locale>en</default-locale>
</locale-config>
</application>
<managed-bean>
<managed-bean-name>statusManagedBean</managed-bean-name>
<managed-bean-class>
com.fujimitsu.moneytransfer.beans.Status
</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
<navigation-rule>
<from-view-id>/pages/status.jsf</from-view-id>
<navigation-case>
<from-outcome>success</from-outcome>
<to-view-id>/pages/home.jsf</to-view-id>
</navigation-case>
</navigation-rule>
<navigation-rule>
<from-view-id>/pages/status.jsp</from-view-id>
<navigation-case>
<from-outcome>success</from-outcome>
<to-view-id>/pages/home.jsp</to-view-id>
</navigation-case>
</navigation-rule>
<lifecycle>
<phase-listener>
com.fujimitsu.moneytransfer.utils.PrintTreePhaseListener
</phase-listener>
</lifecycle>
</faces-config>
web.xml
======
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<!--A short name that is intended to be displayed by tools.-->
<display-name>The simplest JSF application.</display-name>
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>/faces/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.jsf</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.faces</url-pattern>
</servlet-mapping>
</web-app>
DIRECTORY STRUCTURE
====================
appName
pages
WEB-INF
.........Thanks. -
How to call javascript function & action method on clicking jsf button?
I have one jsf custom button. I am checking client side validations in mail by calling javascript function & also sending mail by calling action method of a bean which will execute at server side for onclick event of that button. Because of this when I click on that button its calling both javascript function and action method. So even though validations failed its sending mail. How can I overcome this problem?? Please help me....
I am asking regarding commanLinks in jsf. I have the following code block in jsf. Even though mailSentMessage('true'); returns false, its calling action="#{emailObjectAction.sendEmail}" method. thats why I got that doubt. try the following code.
<h:commandLink id="mailBtn123Send" onclick="return mailSentMessage('true');" value="send mail" action="#{emailObjectAction.sendEmail}">
</h:commandLink> -
PageMethod response returning whole page, unable to debug the server side method
Hello Guys,
I am unable to debug my method written on server side when a call is send to it through jquery using page method.
In response , I get the whole page.
code:
ASPX page:
PageMethods.MyMethod(p1, p2, function(response){
ASPX.CS
[System.Web.Services.WebMethod()]
[System.Web.Script.Services.ScriptMethod()]
publicstaticstringMyMethod(stringp1,
stringp2){
//Updating database
I did ScriptModule entry in web.config, enabled tracing,have ScriptManager and EnablePageMethods is set to true.
Still the server side method is not getting called.
please help.
Ng_TechFreakHi Ng_TechFreak,
For ASP.NET questions please post in
ASP.NET forum where you'll get better help.
Thanks for your understanding.
We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
Click
HERE to participate the survey. -
Calling the super class method from the subclass
Hi all,
I have a question about inheritence and redefinition of methods. Is it possible to call the superclass implementation of a method which is redefined in the subclass in another method of the subclass?There are possbilities like creation of an explicit super class instance or delegating the super class method implementation to another method which is also protected etc. What i mean is, is there a direct way of calling it?We have ,me, as the reference for the instance we have(which is the subclass instance in this case), is there also a way of pointing the superclass implementation(with super we can reference in the subclass redefinition, my question is if we have such a parameter in other methods of the subclass too)
Thanks in advance
SukruHi,
The super reference can only be used in redefined methods to call superclass implementation . So probably what you can do is use upcasting and access the required superclass implementation. I can think of only this way...;-)
Ex data lr_super type ref to cl_superclass
lr_super = lr_subclass.
lr_super->method().
~Piyush Patil -
Problem : when calling the findbyPrimaryKey(id) method
when I call the create() method and insert into the database it works fine but when i call the findByPrimaryKey() method it doesnt return anything and gives the following error.
Cannot find principal mapping information for data source with JNDI name jdbc/Cloudscape
Sinetread this one:
http://developer.java.sun.com/developer/onlineTraining/J2EE/Intro/jdbc.html
Almost at the bottom you wil see your error message explained. -
Two Incidents created when calling the AppsLogger createIncident method
when trying to create the Incident using the below method AppsIncidentInfo createIncident(Object pThis, String pAppShortName, String pMessageName, Map<String, Object> pMap, Throwable pException) of class AppsLogger.java (Line No:745 /jdeveloper/jdev/oaext/oracle.apps.fnd.applcore-src.zip!/oracle/apps/fnd/applcore/log/AppsLogServiceImpl.java),
it is creating two incidents with same Error Message. But it is suppose to create only one Incident
when debug this above method it is calling the AppsIncidentInfo write(Object pThis, MessageVORow pMessage, Map<String, Object> pMap, Throwable pException) method iof class AppsLogServiceImpl.java
( /jdeveloper/jdev/oaext/oracle.apps.fnd.applcore-src.zip!/oracle/apps/fnd/applcore/log/AppsLogServiceImpl.java). In Line No 377 of class AppsLogServiceImpl.java it is creating the incident. And again in Line No 1542 of class AppsLogServiceImpl.java also it is creating Incident.
Could anyone please suggest whether this is the expected behavior or do we need to restrict the second Incident creation in Line No 1542 of class AppsLogServiceImpl.java with condition
if (_checkIncidentMarkerExists(pMessage) == false).
Edited by: 902796 on Feb 2, 2012 4:26 AMYou are sure you are in the right forum?
Looks like OA {forum:id=210}
Timo -
Explicitly call the Event Handler method
Hello Friends,
Is it possible to explicitly call the eventhandler method `? or dynamically fire/invoke the event so that particular eventhandler method should be called ?
Regards,You should call eventhandler as follows
DATA lr_event TYPE REF TO cl_wd_custom_event.
**Create event object
CREATE OBJECT lr_event
EXPORTING
name = 'ON_SELECT'. " give your event name which appears in wdevent in your handler method
* Call eventhandler
wd_this->onactionsel_rdb(
wdevent = lr_event " ref to cl_wd_custom_event -
Need to Call the Parent Class Method
Hi..
Please go thru the following code.
class Parent {
Parent() {
System.out.println("In Parent Constructor");
void set() {
System.out.println("In Parent set method");
class Child extends Parent {
Child() {
System.out.println("In Child Constructor");
void set() {
super.set();
System.out.println("In Child set method");
class SetTrial {
public static void main(String args[])
Child aChild = new Child();
Parent theImpl = (Parent)aChild;
theImpl.set();
I want to know, is there any way by which we can get the Parent Set method to be executed, when we invoke it in main.
In the main, I should be able to decide which Set to invoke based on certain conditions.
TIA..
Basu.Since you seem to have an aversion to using the child class decide whether to call just the parent's set function, I think I would do it like this:
class Parent{
Parent() {
System.out.println("In Parent Constructor\n");
void set(ConditionClass C) {
System.out.println ("In Parent set method\n");
class Child extends Parent {
Child() {
System.out.println("In Child Constructor");
void set(ConditionClass C) {
super.set();
if (C.CallChildSet()) {
System.out.println("In Child set method");
class SetTrial {
public static void main(String args[])
Child aChild = new Child();
Parent theImpl = (Parent)aChild;
ConditionClass C = new ConditionClass()
theImpl.set(C);
}In any case I would decide in the child's set to call the parent's set or not.
Maybe you are looking for
-
Trying to Customize a view object relating to an LOV
I am trying to customize an LOV that references View Object FlexDynamicLovVo. The about page shows /oracle/apps/fnd/framework/webui/OAFlexLOVRG 120.6. The controller is OAFlexDynamicLovCO and the application module is OAFlexDynamicLovAM. I
-
How to load bios screen at startup?
I'm trying to access the bios screen at startup. This computer has the Mac side and a Windows PC side. I want to open the bios screen in the Windows PC side (if this makes a difference) so that I can change the booting options. Can someone please hel
-
I have been reviewing Oracle Statspack reports generated in our SAP R/3 database and one of the statistics that jumped out at me is a very high Rollback per Transaction percent of over 45%. I support other non-SAP Oracle databases and have never see
-
1. HP Photosmart Premium C310 2. Windows Vista Ultimate 3. No mesage 4. no changes 5. Couldn't find the solution in HP Support Assistant
-
How do I keep the date/time when exporting photos?
When exporting photos from Photos.app on my Mac, it doesn't use the metadata that it displays in Photos--it uses the current date/time. So when I export a photo from 2010, it says it's dated 2015 when I import it into Aperture. Is there a way to expo