the line form.
set("projectId",projectNumber); (note that is just a simple 'get' method of the ActionForm class, NOT the getter of the projectId) sets the project id value. using the struts html:hidden tag in the details page should automatically puts the value into an <input type="hidden" name="projectId" value="1"> where '1' is the ID of the project. if you view source of the main.jsp generated HTML codes, can you see the project ID being passed in as a hidden field?
if you CAN see the value in the source (which means you've done everything correctly up until this point), then in the display action, simply do the same to get the form out and call
form.get("projectId"); to retrieve the project.
if you CANNOT...make sure the value is being generated. do a System.out of that value just before you call the form.set(). passing a non-calculatable ID as a double or int may be problematic. i suggest you convert it to a
String before setting it into the form (in the main action). when you pass it back, simply convert that back to whatever the DB needs.