[rules-users] jsp, java and drl file

Brajesh brajesh4etc at gmail.com
Thu Jun 14 09:49:08 EDT 2012


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.


More information about the rules-users mailing list