(VRaptor3)varias ações POST no mesmo controller

como posso mapear varias ações com o método post em um mesmo controller no vraptor?
por exemplo quero ter os métodos “salvar” e “salvar e enviar”?

Cada método define uma ação.

Se você tiver dois métodos públicos no controller:

public void salvar() {}
public void salvarEEnviar() {}

Cada um deles já terá um url associada para fazer o post.

consigo fazer isso em um mesmo form sem fivar interceptando as ações via javascript? desculpa as perguntas de iniciante!!

Sem javascript não dá para fazer o mesmo form ter duas actions diferentes.

Qual o problema de usar javascript?

Você pode usar o padrão Strategy e cada botão passa como parâmetro o nome da classe que vai fazer a ação.

Algo assim:

// Form: <form action="/apply/strategy" method="post"> // Componentes <button type="submit" name="strategy" value="SaveStrategy">Salvar</button> <button type="submit" name="strategy" value="SaveAndSendStrategy">Salvar e enviar</button> </form>
Aí você cria uma interface que vai ter um método:

public interface ActionStrategy {
   public void apply(...);
}

e cria as duas classes que vão fazer ações diferentes:

public class SaveStrategy implements ActionStrategy {
   public void apply(...){...}
}
public class SaveAndSendStrategy implements ActionStrategy {
   public void apply(...){...}
}

E ai você cria um converter para a ActionStrategy:

@Converts(ActionStrategy.class)
public class ActionStrategyConverter implements Converter<ActionStrategy> {
   private final Logger logger = LoggerFactory.getLogger(this.getClass());

   @Override
   public ActionStrategy convert(String value, Class<? extends ActionStrategy> type, ResourceBundle bundle) {
      try {
         String classPackage = ""; // Poe o pacote das implementações
         String className = value;
         return (ActionStrategy) Class.forName(classPackage + className).newInstance();
      } catch (IllegalArgumentException e) {
         logger.error("Unable to instantiate this action strategy, will return null.", e);
      } catch (InstantiationException e) {
         logger.error("Unable to instantiate this action strategy, will return null.", e);
      } catch (IllegalAccessException e) {
         logger.error("Unable to access this  action strategy, will return null.", e);
      } catch (ClassNotFoundException e) {
         logger.error("This  action strategy could not be found, will return null.", e);
      }
      return null;
   }
}

Daí a sua action fica ± assim:

@Post("/apply/strategy")
public void applyStrategy(ActionStrategy strategy, /*outros parâmetros*/){
   strategy.apply(...);
}

Se você for implementar isso, tome cuidado com as exceptions que podem acontecer… Trate as coisas com try{}catch{}…

Qualquer coisa grita ai!

valeu Rafael!! tinha pensado em algo parecido, boa dica vou testar depois posto os resultados