Using a class for validation

I have a form that collects some info (let's say username and email address). I wrote a Java class for it that has the set and get methods. I am wondering how I can redirect to the page from the class itself in case something fails (like an '@' not in an email address etc.). Also, if that's possible, how can I tell the original page that the validation failed so I can print a nice red error message?
Thanks!

Just submit the form through a servlet and let it handle all the business logic. Let the validator throw an exception or so and then let the servlet or bean handle it and let the JSP display a message based on that condition.
You may find this article useful to get some ideas of how to layer things properly and get it all to work together: [http://balusc.blogspot.com/2008/07/dao-tutorial-use-in-jspservlet.html].

Similar Messages

  • Is anyone else having email problems such as apps exiting in the middle of an email? It may be a wireless issue. I use First Class for work and yahoo email for personal. I will be in the middle of typing a long email and the app just quits, all data lost.

    Is anyone else having email problems such as apps exiting in the middle of an email? It may be a wireless issue. I use First Class for work and yahoo email for personal. I will be in the middle of typing a long email and the app just quits, all data lost.

    Have you tried restarting or resetting your iPad?
    Restart: Press On/Off button until the Slide to Power Off slider appears, select Slide to Power Off and, after the iPad shuts down, then press the On/Off button until the Apple logo appears.
    Reset: Press the Home and On/Off buttons at the same time and hold them until the Apple logo appears (about 10 seconds). Ignore the "Slide to power off"

  • Problem in using View Object for validation

    Hi,
    I have defined a simple swing form to practice. It has one Entity Object and two View objects. One of these view objects is an updatable VO based on the EO and the other one has a simple "select count(*)" from a table. I defined a method validation on one of the EO attributes to see how can i use the VO for validation. On the other hand i defined the Application Module to use both of my views. As far as i undrestood, when i define a VO for AM, the AM will instantiate it the first time it starts running. Here is the code inside the method validation for FirstName attribute:
    /**Validation method for FirstName
    public boolean validateFirstName(String data) {
    ViewObject vo = getDBTransaction().getRootApplicationModule().findViewObject("CountEmployeeInstance");
    if (vo == null) {
    System.out.println("vo is null");
    else {
    vo.executeQuery();
    if (vo.hasNext()){
    System.out.println("count = " + ((CountEmployeeRowImpl) vo.next()).getCount());
    else {
    System.out.println("vo has no next");
    return true;
    The problem is that vo.executeQuery() does not return any record. In fact the vo.hasNext() returns false and i get the message "vo has no next" on the console. Please pay attention that the VO's sql statement is SELECT COUNT(*) and it always returns a record. I found that if i use vo.closeRowSet() before vo.executeQuery() everything works fine.
    Please tell me that what is my problem and why is it working like this?
    Best Regards,
    Alireza Vali

    Chris,
    1- Every thing is fine with the ADF model layer in this practice. I have tested it by using Test option on AM and it works. It works exactly the same as how it works throug swing UI that i use for it.
    2- The VO is beeing found and as you see in the code, i have tested it by "if (vo == null)" just after the statement which finds it and vo is not null which means it has been instantiated by AM as it was supposed to.
    3- The VO's SQL statement is "SELECT COUNT(*) FROM EMPLOYEE" with no where clause. I have 14 records in this table.
    Every thing is OK with swing form. It runs and shows the records and all the binded operations like "next record", "previous record" and so on work perfectly on the records.
    4- The code i used is a combination of two examples. Example 9-7 and 9-8 in pages 9-12 and 9-13 of mentioned document.
    Now my findings:
    I changed the code to the following:
        /**Validation method for FirstName
        public boolean validateFirstName(String  data) {
            ViewObject vo = getDBTransaction().getRootApplicationModule().findViewObject("MaxEmployeeIdInstance");
            if (vo == null) {
                System.out.println("vo is null");
            else {
                //vo.closeRowSet();
                vo.executeQuery();
                System.out.println("Row Count = " + vo.getRowCount());
                System.out.println("Default Slot = " + vo.getCurrentRowSlot());
                vo.next();
                System.out.println("Slot after next() = " + vo.getCurrentRowSlot());
                vo.reset();
                System.out.println("Slot after reset() = " + vo.getCurrentRowSlot());
                vo.first();
                System.out.println("Slot after first() = " + vo.getCurrentRowSlot());
                vo.last();
                System.out.println("Slot after last() = " + vo.getCurrentRowSlot());
                System.out.println("----------------------");
                vo.executeQuery();
                System.out.println("Deafault index = " + vo.getCurrentRowIndex());
                vo.next();
                System.out.println("Index after next() = " + vo.getCurrentRowIndex());
                vo.reset();
                System.out.println("Index after reset() = " + vo.getCurrentRowIndex());
                vo.first();
                System.out.println("Index after first() = " + vo.getCurrentRowIndex());
                vo.last();
                System.out.println("Index after last() = " + vo.getCurrentRowIndex());
                System.out.println("Slot Before First = " + vo.SLOT_BEFORE_FIRST);
                System.out.println("Slot Beyound Last = " + vo.SLOT_BEYOND_LAST);
            return true;
        }Here are the results :
    Row Count = 1
    Default Slot = 0
    Slot after next() = 3
    Slot after reset() = 0
    Slot after first() = 0
    Slot after last() = 0
    Deafault index = 0
    Index after next() = -1
    Index after reset() = 0
    Index after first() = 0
    Index after last() = 0
    Slot Before First = 2
    Slot Beyound Last = 3
    As you see, after the execution of the statement "vo.executeQuery()" the The RowIterrator pointer is not pointing to the slot before the first record but it is pointing to the first record itself. And that is why the statement "if (vo.hasNext()" returns false because we just have one record and RowIterrator Index is standing on that record and there is no next record present. The very important thing is that even reset() method does not set the index to the slot before the first record and it sends it to the first record.
    After that, i took the statemet "vo.closeRowSet()" out of the comment and here are the results:
    Row Count = 1
    Default Slot = 2
    Slot after next() = 0
    Slot after reset() = 2
    Slot after first() = 0
    Slot after last() = 0
    Deafault index = -1
    Index after next() = 0
    Index after reset() = -1
    Index after first() = 0
    Index after last() = 0
    Slot Before First = 2
    Slot Beyond Last = 3
    These are the exact things that we expected from the first. After query execution, the pointer is set to the slot before first record and the reset() method does its defined job which is sending the pointer to the slot before the the first record.
    My Assumptions:
    The Rowset which is created by AM is somehow different from the RowSet which you create in your program. I am absolutely sure that this functionality is not a bug but a design decission. I look at my simple program and see that when it runs, the data is queried and shown on the screen which is all done by AM by instantiating my VO and executing the query on it. AM reasonably must put the RowSet pointer on the first record and not the slot before first record. And i am sure that if i use reset() method on the shown RowSet, the pointer goes to the first record and the data on the screen does not get cleared. Whe we use vo.closeRowSet() and execute the query again, the AM made RowSet is closed and a new one is created and the new RowSet is your's not AM's so it functions as you expect.
    Best Regards,
    Alireza Vali

  • May I use Exception Handling for validation ?

    Hello All,
    Can any one know about that may i use exception handling for validation in my report program.
    Please if its possible then give me some Example...
    Thanks.

    Hi Niraj,
    Exception is not at all raised or handled in the given example.
    There are so many document available in the SCN regarding OO ABAP you can read that.
    As far as validation of a field ( Selection screen ) of course we can do that but I don't see any advantage more over it will make your code unnecessarily complex.
    Regards
    Bikas

  • How to use multiple classes for each form

    Hi,
    I have created two forms using screen painter and now i want to use different classes for these two forms .
    I have declared the Sbo Connection in main class i.e. Set Application ,Connection Context() but while connecting to other classes
    for executing the code for that form SAP is not connected to that class.How to use multiple classes functionality i don't able to
    do that.Please provide some sample codes for that as it will be more helpful for me to understand.
    Thanks & Regards,
    Amit

    Hi Amit,
    In fact, its more advisable to use separate classes for every form that you use.  Have one common class, say, for eg., clsMain.cs which has all the connection and connectivity to other classes, wherein, the menu event and item event of this main class, will just be calling the menu / item event of other classes.
    The individual functionality of the child classes will be called from the item / menu event of the respective classes.
    Item event in clsMain.cs will be as below.
    private void oApplication_ItemEvent(string FormUID, ref SAPbouiCOM.ItemEvent pVal, out bool BubbleEvent)
                SAPbouiCOM.Form oForm;
                BubbleEvent = true;
                try
                    if ((pVal.FormTypeEx == "My_Form1Type") && (pVal.EventType != SAPbouiCOM.BoEventTypes.et_FORM_UNLOAD))
                        oForm = oApplication.Forms.GetForm("My_FormType", pVal.FormTypeCount);
                        NameSpace.Repots.ClsForm1.ClsForm1_ItemEvent(oApplication, oCompany, oForm, ref pVal, ref BubbleEvent);
                    if ((pVal.FormTypeEx == "My_Form2Type") && (pVal.EventType != SAPbouiCOM.BoEventTypes.et_FORM_UNLOAD))
                        oForm = oApplication.Forms.GetForm("My_FormType", pVal.FormTypeCount);
                        NameSpace.Repots.ClsForm1.ClsForm2_ItemEvent(oApplication, oCompany, oForm, ref pVal, ref BubbleEvent);
    Now, in the individual classes, you can have their respective item events, which will be called from the main class, and the respective functionalities will occur.
    Hope this helps.
    Regards,
    Satish.

  • Using regular expressions for validation in i18n

    Can we use regular expressions for validation of inputs in a java application taking care of i18N aspects too. Zip code for different locales are different. Can we use regular expressions to validate zipcode inputs from different locales

    hi,
    For that shall i have to create individual patterns for matching the inputs from different locales or a single pattern will do in the case of validating phone nos. around the world, zip codes etc. In case different patterns are required, programmer should have a konwledge of difference in patters for different locales.
    regards
    sdas

  • Passing argument to, when using one class for multiple assets

    I had a class that I was passing a simple argument to like so:
    var quiz_1_2:CaseStudyQuiz = new CaseStudyQuiz(2);
    addChild(quiz_1_2);
    I now would like to use this class for multiple MCs in my library. I thought I could let Flash create a class for each of them and specifying the CaseStudyQuiz class as the Base class. When I do that, I get the following error:
    1136: Incorrect number of arguments.  Expected 0.
    Obviously this is because the class created by flash does not except an argument. Does that mean, I would have to create a seperate class for each of the movies that use that class? And if so, what would I have to do in that class for it to except the parameter and pass it on to my base class?
    Thank you very much for any help with this!!!

    use the super() function and pass your parameter.  but you still might get a runtime error but i don't think that will cause a problem.

  • Message Class for Validations

    Dear Experts,
    We are on SAP 4.6C. I am trying to create a validation on WBS elements
    for a project. Using transaction GGB0. I would like to issue an error
    message from a different custom message class. However, I cannot
    change the message class for the WBS element validation. The "Message
    ID" field on the Create/Change Validation screen is greyed out and the
    Extras -> Change Message Class is also greyed out.
    Any suggestions would be greatly appreciated.
    Regards,
    Venkat.

    Can't help you with this one, I can just confirm the behaviour. However, this question is far from BPM and Workflow. Perhaps you should ask the same question in one of the ABAP Development forums (and add a pointer to it from here and close this question).
    It's not easy to tell which forum is most appropriate. Perhaps the "Enhancements and Modifications" forum could be said to be appropriate, as the validations and substitutions can be said to be a sort of enhancement technique. I am sure someone there will disagree, but that's the only candidate I see besides "ABAP, General".

  • Using FileIOInteractionSpec Class For Moving File using File Adapter

    Hi All,
    I am tring to use FileIOInteractionSpec class to move a file from one location to another. The problem is that I am not able to override its properties from BPEL, here is how the FileAdapter.jca file looks like which moves the file from one location to another:
    <adapter-config name="MoveFileService" adapter="File Adapter" wsdlLocation="MoveFileService.wsdl" xmlns="http://platform.integration.oracle/blocks/adapter/fw/metadata">
    <connection-factory location="eis/FileAdapter"/>
    <endpoint-interaction portType="MoveFile_ptt" operation="MoveFile">
    <interaction-spec className="oracle.tip.adapter.file.outbound.FileReadInteractionSpec">
    <property name="DeleteFile" value="true"/>
    <property name="PhysicalDirectory" value="C:\FileRead"/>
    <property name="FileName" value="dummy.txt"/>
    </interaction-spec>
    </endpoint-interaction>
    *<endpoint-interaction portType="MoveFile_ptt" operation="Move">*
    *<interaction-spec className="oracle.tip.adapter.file.outbound.FileIoInteractionSpec">*
    *<property name="Type" value="MOVE"/>*
    *<property name="SourcePhysicalDirectory" value="C:\FileRead"/>*
    *<property name="SourceFileName" value="dummy.txt"/>*
    *<property name="TargetPhysicalDirectory" value="C:\FileRead2"/>*
    *<property name="TargetFileName" value="dummyCopy.txt"/>*
    *</interaction-spec>*
    *</endpoint-interaction>*
    </adapter-config>
    In the above code, I have hard-coded the values, and it works fine like that.
    However, when I try to override these values by defining properies in BPEL invoke's tag, the values are getting passed as null.
    Here is the invoke tag code, tried the following 2 combinations:
    <invoke name="InvokeFileMove"
    inputVariable="InvokeFileMove_MoveFile_InputVariable"
    partnerLink="MoveFileService" portType="ns1:MoveFile_ptt"
    operation="Move" bpelx:invokeAsDetail="no">
    <bpelx:inputProperty name="jca.file.SourcePhysicalDirectory" value="C:\FileRead"/>
    <bpelx:inputProperty name="jca.file.SourceFileName" value="dummy.txt"/>
    <bpelx:inputProperty name="jca.file.TargetPhysicalDirectory" value="C:\FileRead2"/>
    <bpelx:inputProperty name="jca.file.TargetFileName" value="dummyCopy.txt"/>
    </invoke>
    And
    <invoke name="InvokeFileMove"
    inputVariable="InvokeFileMove_MoveFile_InputVariable"
    partnerLink="MoveFileService" portType="ns1:MoveFile_ptt"
    operation="Move" bpelx:invokeAsDetail="no">
    <bpelx:inputProperty name="SourcePhysicalDirectory" value="C:\FileRead"/>
    <bpelx:inputProperty name="SourceFileName" value="dummy.txt"/>
    <bpelx:inputProperty name="TargetPhysicalDirectory" value="C:\FileRead2"/>
    <bpelx:inputProperty name="TargetFileName" value="dummyCopy.txt"/>
    </invoke>
    These four properties are not visible in Invoke -> Properties tab as well.
    Could you please suggest how can I override the jca's values for FileIOInteractionSpec class?

    I have successfully used this API and it works fine.
    Try to use variables which contains values like "dummyCopy.txt" etc.
    Here is what I used :
    <bpelx:inputProperty name="jca.file.SourceDirectory"
    variable="inputDirectory"/>
    <bpelx:inputProperty name="jca.file.SourceFileName"
    variable="inputFileName"/>
    <bpelx:inputProperty name="jca.file.TargetDirectory"
    variable="destinationDirectory"/>
    <bpelx:inputProperty name="jca.file.TargetFileName"
    variable="inputFileName"/>
    Pass approppriate values into the above given variables and try.
    Hopefully it should work.
    Let us know, how it goes !
    <Puneet/>

  • How to set username and password when using Proxy class for SOCKS5?

    Hi all,
    I use the proxy class for SOCKS5, so need to set username and password, I don't find where can I set the value. whether the API support it.
    Thanks in advance!

    System.getProperties().put("proxySet", "true");That does nothing. Remove.
    System.getProperties().put("proxyHost", getProxyHost());
    System.getProperties().put("proxyPort", getProxyPort());You should be setting socks.proxyHost and socks.proxyPort here.
    System.setProperty("java.net.socks.username", getSOCKSUsername());
    System.setProperty("java.net.socks.password", getSOCKSPassword());
    Authenticator.setDefault(new ProxyAuth(getSOCKSUsername(), getSOCKSPassword()));You either need the first two lines or the third, not both. See the last link posted above.
    1. After I set the value, I connect internet by proxy, how the proxy server knows the values?Because Java tells it during the SOCKS handshake.
    2. In my app, I just set the values in the system properties, then JVM does remaining work? Remaining work is not concerned?Should be OK unless you have to connect to a different SOCKS proxy from the same JVM, but that kind of thing is problematic anyway due to the curious Authenticator design which is set globally, not per connection as you might expect.

  • Using Custom Legend without Using Legend Class for line Chart

    Hi ,
    I m trying to create legend with checkbox without using Legend class of flex, but problem is that how to use itemrenderer of lineseries in the legend.
    My requirement is like this:

    my problemb is how to get that shape and use in container .
    i am using hbox in that i have checkbox ,label and i tried to use Image or IFlexDisplayObject but i am unable to assign that renderer to either  image or IFlexDisplayOBject nothing isd working.
    any suggestion for what component i shall use to assign the itemrenderer of lineseries.
    Thanks for replying

  • Using same class for duplicate movieclips

    Hello everyone,
    I have created an external class for a particular movieclip and I would like to link a duplicated version of this movieclip to the same class file.
    Problem is I can't seem to do it. Even if I state the class as the BASE class of the new movieclip and create another random class name for it.
    Is there a way I can get around this so I can assign my duplicated clip the same class name ??
    Thanks in advance
    Martin

    well first off I get 'Neutralization of a marked function override' which is apparently caused by the 'stop();' on the first frame of the new symbol.. when I remove that I get 'Number of arguments incorrect.. 2 expected' on the super line
    I have two variables that I'm passing to Animal which are :-
    public function Animal (frameNumber:Number, level:Number)
    Do I need to reflect this in my code ?
    package  {
        import flash.display.MovieClip;
        public class Animal1 extends Animal {
            public function Animal1():void {
                super();

  • Design question about when to use inner classes for models

    This is a general design question about when to use inner classes or separate classes when dealing with table models and such. Typically I'd want to have everything related to a table within one classes, but looking at some tutorials that teach how to add a button to a table I'm finding that you have to implement quite a sophisticated tablemodel which, if nothing else, is somewhat unweildy to put as an inner class.
    The tutorial I'm following in particular is this one:
    http://www.devx.com/getHelpOn/10MinuteSolution/20425
    I was just wondering if somebody can give me their personal opinion as to when they would place that abstracttablemodel into a separate class and when they would just have it as an inner class. I guess re-usability is one consideration, but just wanted to get some good design suggestions.

    It's funny that you mention that because I was comparing how the example I linked to above creates a usable button in the table and how you implemented it in another thread where you used a ButtonColumn object. I was trying to compare both implementations, but being a newbie at this, they seemed entirely different from each other. The way I understand it with the example above is that it creates a TableRenderer which should be able to render any component object, then it sets the defaultRenderer to the default and JButton.Class' renderer to that custom renderer. I don't totally understand your design in the thread
    http://forum.java.sun.com/thread.jspa?forumID=57&threadID=680674
    quite yet, but it's implemented in quite a bit different way. Like I was saying the buttonClass that you created seem to be creating an object of which function I don't quite see. It looks more like a method, but I'm still trying to see how you did it, since it obviously worked.
    Man adding a button to a table is much more difficult than I imagined.
    Message was edited by:
    deadseasquirrels

  • Can i use a class for this or do i need to use a type def

    what i am trying to do is have a parent cluster witch has a file name and some free space to put is children's data in with decorations at the bottom.
    i then need to have a child with a graph in the middle blank space of the parent.
    i also need to have another child with a table in the middle blank space.
    can i do this with classes or do i need to use typdefs.
    tks in advance

    Hello vivi,
    I'm not entirely sure what you mean.  The classes that you create in LabVIEW 8.2 are meant to be containers for data and methods, not displayable items.  Even though a class's private data members are defined in a cluster, you can't think of a class and a cluster as the same thing.  A cluster is an object that you can use to bundle different kinds of information together.  You can also design a cluster to be displayed on a front panel.
    If you want to use LabVIEW's object oriented features, I would suggest creating a class which stores your objects data (non displayable).  You could then create a method on your class to convert some of its internal data into a cluster which can be displayed to the user.
    Regards,
    Justin D
    Applications Engineer
    National Instruments

  • Using JavaCompiler Class for Debugging Info Only

    Hello everyone,
    Before I get started into the problem, I'll tell you what it is I'd like to do. I'm building an educational applet that'll allow students learning Java programming to write code on a Web page. My goal is to simulate a compiler environment without having it actually compile code (i.e. I want to tell them if there are any syntactic errors in their code). I've searched around the Web quite a bit for how to do this, and I thought I had something by using the JavaCompiler class. It works perfectly in a command-line version I've developed, but in the applet, when I invoke the compiler, the applet freezes. I've isolated it to the compiler call itself. Here is the init method (yes, I know it's a better idea to do the hard work and GUI building in a separate class; but right now, I'm just checking if it all works).
    @Override
    public void init()
    output = new JTextArea(5, 30);
    this.getContentPane().add(output);
    PrintWriter out = new PrintWriter(new TextAreaWriter(output));
    out.print("Hello!");
    JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
    String program = "class Test{" + " public static void main (String [] args){"
    + " System.out.printl (\"Hello, World\");"
    + " System.out.println (args.length);" + " }" + "}";
    Iterable<? extends JavaFileObject> fileObjects;
    fileObjects = getJavaSourceFromString(program);
    compiler.getTask(null, null, null, getOptions(), null, fileObjects).call();
    If I exclude the bold line of code, the applet runs. Otherwise it hangs and does nothing. I imagine this has something to do with the execution environment, permissions, etc. If you'd like to see more of the code I'm using, let me know.
    My questions are these: is there an easier way to go about this? Is there a way to invoke the compiler to get its output only, WITHOUT directly compiling a class? Is there a Magic Library designed for this that I've somehow overlooked? I know JDB only works on already-compiled class files; there's a tool called Checkstyle that seems to be more for formatting and subtle issues of style (hence, the name) than actual error checking (not to mention, it requires compiled code as well).
    Any thoughts would be greatly appreciated, all. :) Let me know if you need more info.

    >
    I checked the console after the freeze; it's handing me a NullPointerException for that line, which would be understandable except all of the arguments to call() can deal with null values. ( http://download.oracle.com/javase/6/docs/api/javax/tools/JavaCompiler.html )
    From the javadoc for ToolProvider.getSystemJavaCompiler():
        Returns:
            the compiler provided with this platform or null if no compiler is providedSo it's definitely possible that compiler.getTask(null, null, null, getOptions(), null, fileObjects) returns null.
    Indeed that's what I would expect from a browser's JVM (which includes only a JRE, and not a JDK).
    Edited by: jduprez on Apr 29, 2011 2:56 PM
    Ah, ah, I missed your latest edit while I was reading the API Javadoc :o)
    Glad you found out!

Maybe you are looking for

  • How do I get my ringtones back on my phone after since i got a new phone

    How do i get my ringtones to my new phone

  • Need user exit or BADI for FB60

    Hi Guys!!, I am working on one object which   belongs to FB60 transaction. I have to give error message when user enter the ZTERM Value above 45 days for particular vendor group(MSMED).please help out. Richard.

  • Co-Product Costing

    Dear Experts, We have a Discrete Manufacturing scenario. The Production orders are created manually. The BOMs consist of only 1 RM and relation to FG is 1:1 with respect to weight. (UOM is tonnes) Now, upon processing the RM, the FG material is recei

  • Airport and Wireless Printing?

    I have an older airport. The domed one that looks like a UFO. I'd like to be able to print wirelessly from my Dell and Mac laptops. Does anybody have instructions on how to do so? My printer is a Lexmark X2650. I have a Powerbook G4 and a Dell Latitu

  • Need help with script to save iPhoto RSS pix to album

    Hi all. I'm a very green Applescripter needing some pointers. Goal: Create a script to "save" pictures from subscribed RSS feeds in iphoto (they get automatically deleted when they fall off the RSS feed). I can "add" or "duplicate" the images from th