[rules-users] jsp, java and drl file

Wolfgang Laun wolfgang.laun at gmail.com
Thu Jun 14 10:28:41 EDT 2012


What, exactly, do you mean by "when the rule violates"?
-W


On 14/06/2012, Brajesh <brajesh4etc at gmail.com> wrote:
> Hi Friends
>
> I am trying to create a web page with a form, so when we click on submit,
> we
> are redirected to the result web page, but the content of this page will be
> generated according to the rules i created in my drl file. Does anyone
> knows
> the easiest way to do this? are they a way to call the drl file from the
> jsp
> file, or the java file?
>
> My Jsp file
> <form:form method="post" action="login.htm" commandName="loginForm"
> id="loginForm">
> 		<table>
> 	        <tr>
> 	            <td>Enter username:</td>
> 	            <td><form:input path="UserName" style="width:250px"
> maxlength="75"/></td>
> 	        </tr>
> 	        <tr>
> 	            <td>Enter password</td>
> 	            <td><form:password path="UserPassword" style="width:250px"
> maxlength="75"/></td>
> 	        </tr>
>        </table>
> 	   <table width="100%" border="0" cellspacing="0" cellpadding="0">
>          	<tr>
> 				<td valign="top" >
> 					<label>
> 					    <input type="submit" value="Save" />
> 					</label>
> 					<label>
> 					   <input type="reset" value="clear"/>
> 					</label>
> 			  </td>	
> 		  </tr>
>       </table>							
>    </form:form>
>
> My controller class
>
> @RequestMapping(value="login.htm", method=RequestMethod.POST)
> 	public String showAffilaiteform(Map<String, Object> model,login
> loginform,BindingResult result) {
> 		String target = AFFILIATE_REGISTRATION;
> 		try{
> 			testDAO.drools(loginform);
> 			model.put("affiliateRegistrationForm", new AffiliateUserRegistration());
> 		
> 		   }catch(Exception e)
> 		{
> 			e.printStackTrace();
> 		}
> 		
>
> 		return target;
> 	}
> My TestDao class
>
> public class TestDAO implements ITestDao {
> 	
>
>
> 	 public void drools(login loginform) {
>
> 		  try {
> 		         // load up the knowledge base
> 		         KnowledgeBase kbase = readKnowledgeBase();
> 		         StatefulKnowledgeSession ksession =
> kbase.newStatefulKnowledgeSession();
> 		         KnowledgeRuntimeLogger logger =
> KnowledgeRuntimeLoggerFactory.newFileLogger(ksession, "myLog");
> 		         ksession.insert(loginform);
> 		         ksession.fireAllRules();
> 		         logger.close();
> 		     } catch (Throwable t) {
> 		         t.printStackTrace();
> 		     }
>
>
> 	}
> 	
> 	  private static KnowledgeBase readKnowledgeBase() throws Exception {
> 	        KnowledgeBuilder kbuilder =
> KnowledgeBuilderFactory.newKnowledgeBuilder();
> 	
> kbuilder.add(ResourceFactory.newClassPathResource("LoginRules.drl"),
> ResourceType.DRL);
> 	        KnowledgeBuilderErrors errors = kbuilder.getErrors();
> 	        if (errors.size() > 0) {
> 	            for (KnowledgeBuilderError error: errors) {
> 	                System.err.println(error);
> 	            }
> 	            throw new IllegalArgumentException("Could not parse
> knowledge.");
> 	        }
> 	        KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();
> 	        kbase.addKnowledgePackages(kbuilder.getKnowledgePackages());
> 	        return kbase;
> 	    }
>  My DRL file
> import com.ri.bean.login;
>
> 	rule "b"
>     dialect "mvel"
> 	    when
> 	        login( userName == "" ||==null)
> 	    then
> 	    System.out.println("hello");
> 	        login lo = new login();
> 	
> end
> These are my files and my application runs without any error.Now I want to
> show a message on my jsp page when the rule violates.can anybody provide me
> a small piece of code.
>
> Regards
> Brajesh
>
>
> --
> View this message in context:
> http://drools.46999.n3.nabble.com/jsp-java-and-drl-file-tp4017955.html
> Sent from the Drools: User forum mailing list archive at Nabble.com.
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
>


More information about the rules-users mailing list